Wie verwende ich Enums in Getter und setter?

Also, was ich versuche zu tun, ist dies:

Schreiben Sie eine Klasse Benutzer

Benutzer:

  • hat ein Benutzername e.g 'fj3'
  • hat einen userType werden kann: 'user', 'editor' oder 'Administrator'
  • hat einen Namen e.g 'Francis'
  • hat einen Konstruktor, welcher der username userType und name als Parameter
  • hat eine getUsername () - Methode
  • hat eine getUserType () - Methode
  • hat eine getName () - Methode
  • hat eine setUserType () - Methode, die einen der Benutzer-Typen als parameter

Mein code bisher:

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;
    }
}

Was muss ich tun, um diese zu arbeiten? Ich weiß nicht, wie man es so machen das nur usertypes, die gewählt werden können sind admin, Redakteur oder Benutzer.

Validierung der Daten? Verwenden Sie eine Liste bekannter Typen?
Wie soll ich das in bluej? Sie tun es in java nicht bluej, bluej ist nur eine IDE
Sollten Sie userPermissions zu userType.
Wenn Sie die Einstellung id = username werden, ändern Sie entweder den Namen des Feldes in der Klasse username oder pass in id. Und id und ein Benutzername sind verschiedene Dinge, und der code gibt vor, Sie sind die gleiche Sache im moment. Mit einer Klasse erzeugte id könnte noch besser sein, so dass Sie können einen Benutzer erstellen und dann für die id, nachdem es erstellt wurde. Das gleiche problem besteht für userPermissions/userType und actualName/name. public User(String id, String userType, string userName) { this.id = id; this.userType = userType; this.userName = userName; }. Jetzt haben wir vernünftige code.
Mit einem enum ist die absolut richtige Sache zu tun, um den Nutzer einzuschränken Typ nur eine von einer Reihe von Konstanten, die alle zur Kompilierzeit bekannt ist. Jedoch, der Java-Konvention für die Benennung sowohl static final Felder und enum-Konstanten zu verwenden ALL_UPPER_CASE mit Worten, getrennt durch einen Unterstrich. Da enum-Konstanten sind sonst nicht zu unterscheiden von anderen Identifikatoren, es ist sehr wichtig, Folgen dieser Konvention.

InformationsquelleAutor user2973447 | 2013-11-09

Schreibe einen Kommentar