java - 如何在 getter 和 setter 中使用枚举?

标签 java enums

所以我想做的是:

写一个用户类

一个用户:

  • 有一个用户名,例如“fj3”
  • 有一个用户类型,可以是:'user'、'editor' 或 'admin'
  • 有一个名字,例如'Francis'
  • 有一个以用户名、用户类型和名称为参数的构造函数
  • 有一个 getUsername() 方法
  • 有一个 getUserType() 方法
  • 有一个 getName() 方法
  • 有一个 setUserType() 方法,该方法将其中一种用户类型作为参数

到目前为止我的代码:

public class User{

     public String id;
     public String userPermissions;
     public String actualName;

     public User(String username, String userType, String name){
         id = username;
         userPermissions = userType;
         actualName= name;
     }

    public String getUsername(){
        return id;
    }

    public String getUserType(){
        return userPermissions;
    }       

    public String getName(){
        return actualName;
    }

    public enum UserType{
       admin, editor, user;
    }

    public void setUserType(String input){
        userPermissions = input;
    }
}

我需要做什么才能让它发挥作用?我不知道怎么做,所以唯一可以选择的用户类型是管理员、编辑或用户。

最佳答案

您必须将您的类型更改为此枚举:

public class User {
     public enum UserType {
        ADMIN, EDITOR, USER;
     }

     public String id;
     public UserType userPermissions;
     public String actualName;

     public User(String username, UserType userType, String name) {
         id = username;
         userPermissions = userType;
         actualName= name;
     }

    public String getUsername() {
        return id;
    }

    public UserType getUserType() {
        return userPermissions;
    }       

    public String getName() {
        return actualName;
    }

    public void setUserType(UserType input) {
        userPermissions = input;
    }
}

关于java - 如何在 getter 和 setter 中使用枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19879846/

相关文章:

java - 配置slf4j根据日志级别将日志存储在不同的文件中

c++ - 为枚举类覆盖 C++20 宇宙飞船运算符

typescript - 枚举作为构造函数中的参数会出错

java - 为什么我得到一个枚举常量引用不能在 case 标签中被限定?

java - Maven 中的生产数据库处理

java - 使用 logback 仅存档旧日志

java - 警告 ArrayList 是原始类型。应参数化对泛型类型 ArrayList<E> 的引用

java - 从 ArrayList 中删除对象会破坏程序

java - 使用 EnumSet 检查 either/or

c++ - 不同编译器的枚举大小(以字节为单位)