Im Grunde habe ich eine enum für States geschrieben, und ich möchte nicht nur auf sie zugreifen können, sondern auch auf ihre Abkürzung und ob sie eine originale Kolonie waren oder nicht .Java enum mit mehreren Werttypen
public enum States {
...
MASSACHUSETTS("Massachusetts", "MA", true),
MICHIGAN("Michigan", "MI", false),
...; //so on and so forth for all fifty states
private final Object[] values;
States(Object... vals) {
values = vals;
}
public String FULL() {
return (String) values[0];
}
public String ABBR() {
return (String) values[1];
}
public boolean ORIGINAL_COLONY(){
return (boolean) values[2];
}
}
Dies scheint zu funktionieren, wie ich es erwarten würde. Ich kann
System.out.println(States.ALABAMA); // Prints "ALABAMA"
System.out.println(States.ALABAMA.FULL()); // Prints "Alabama"
System.out.println(States.ALABAMA.ABBR()); // Prints "AL"
System.out.println(States.ALABAMA.ORIGINAL_COLONY());// Prints "false"
Für dieses spezielle Szenario Aufzählungen beteiligt, ist dies der beste Weg, dies zu tun, oder gibt es eine bessere Art und Weise zu installieren und diese Enum formatieren? Danke an alle im Voraus!
Die Verfahren sollten nicht in allen Kappen sein. –
Nicht einmal für Enums? Normalerweise benutze ich camel case, aber ich dachte, wenn man etwas statisches referenziert, das nie verändert wird, sollte es alle Caps sein, so wie das enum selbst wäre. –
Es ist auch besser, wenn Sie tatsächlich Felder wie 'name',' abkürzung', 'isOriginalColony' hätten und einen Konstruktor' '(String, String, boolean)' 'hätten. Auf diese Weise ist es besser lesbar und verhindert auch, dass jemand in einem anderen Zustand die Argumente in der falschen Reihenfolge hinzufügt. –