簡體   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