繁体   English   中英

如何在getter和setter中使用Enums?

[英]How do I use Enums in getters and setters?

所以我想要做的是:

写一个User类

用户:

  • 有一个用户名,例如'fj3'
  • 有一个userType,可以是:'user','editor'或'admin'
  • 有一个名字,例如'弗朗西斯'
  • 有一个构造函数,它将username,userType和name作为参数
  • 有一个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;
    }
}

因为您已经声明了一个枚举类型来表示userType的可能值,所以您已经解决了这个问题。

如果声明UserType类型的变量,则唯一可能的值必须是已定义的枚举常量之一。

要限制setPermissions方法的输入,您所要做的就是更改为以下内容:

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 enum UserType{
        ADMIN, EDITOR, USER;
    }

    public void setUserType(UserType type){
        userPermissions = type.toString();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM