12

だから私がやろうとしているのはこれです:

ユーザークラスを書く

ユーザー:

  • 「fj3」などのユーザー名があります
  • 'user'、'editor'、または 'admin' の userType があります。
  • 「フランシス」などの名前があります
  • ユーザー名、userType、および名前をパラメーターとして受け取るコンストラクターがあります
  • getUsername() メソッドがあります
  • getUserType() メソッドがあります
  • getName() メソッドがあります
  • ユーザータイプの 1 つをパラメーターとして受け取る 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;
    }
}

これを機能させるにはどうすればよいですか? 作成方法がわからないので、選択できるユーザータイプは管理者、編集者、またはユーザーのみです。

4

2 に答える 2

11

タイプを次の列挙型に変更する必要があります。

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;
    }
}
于 2013-11-09T17:45:05.577 に答える
1

userType の可能な値を表す列挙型を既に宣言しているため、この問題の解決にはすでに長い道のりを歩んできました。

UserType 型の変数を宣言する場合、唯一の可能な値は、定義された列挙型定数の 1 つでなければなりません。

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();
    }
}
于 2013-11-09T18:08:28.853 に答える