In Java, wie bekomme ich den Wert einer enum-innen der enum selbst?
Möchte ich überschreiben toString()
für meine enum Color
. Allerdings kann ich nicht herausfinden, wie man den Wert einer Instanz von Color
innerhalb der Color
enum. Gibt es eine Möglichkeit in Java?
Beispiel:
public enum Color {
RED,
GREEN,
BLUE,
...
public String toString() {
//return "R" for RED, "G", for GREEN, etc.
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Konstruktoren für Enumerationen. Ich habe nicht getestet, die syntax, aber das ist die Idee.
final
und ein paarprivate
s. Oh, und ein Semikolon.Können Sie auch schalten Sie den Typ des
this
zum Beispiel:- Enum.name()
- wer vom thunk es?Jedoch in den meisten Fällen macht es mehr Sinn, um eventuelle zusätzliche Informationen in einer Instanz-variable, die gesetzt ist int-Konstruktor.
Verwenden
super
undString.substring()
:Java erledigt das für Sie standardmäßig, es gibt die .name() an .toString(), müssen Sie nur zu überschreiben toString (), wenn Sie wollen etwas ANDERES aus dem Namen. Die interessanten Methoden sind .name() und .ordinal() und .valueOf().
Zu tun, was Sie wollen, würden Sie tun,
Was möchten Sie vielleicht zu tun, sondern ist ein Attribut hinzuzufügen genannt, die Abkürzung und das hinzufügen Konstruktor hinzufügen getAbbreviation() und verwenden, statt .toString()
Habe ich etwas gefunden wie folgt aus (nicht getestet tho):
}
Hoffe, es hilft ein bisschen !