В основном то, что я сделал, это написать перечисление для государств, и я хочу не только иметь доступ к ним, но и получить доступ к их аббревиатуре и независимо от того, были ли они исходной колонией ,Перечисление Java с несколькими типами значений
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];
}
}
Это похоже на работу, как я ожидал. Я могу
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"
Для этого конкретного сценария с участием перечислений, это лучший способ сделать это, или есть лучший способ установки и формат этого перечисления? Спасибо всем заблаговременно!
методы не должны быть заглавными буквами. –
Даже не для перечислений? Обычно я использую корпус верблюда, но я подумал, что, ссылаясь на что-то статичное, которое никогда не меняется, оно должно быть все шапки, подобные самому перечислению. –
Это также лучше, если у вас на самом деле были поля типа 'name',' abbreviation', 'isOriginalColony' и имел конструктор, принимающий' (String, String, boolean) '. Таким образом, это более читаемо, а также помогает предотвратить добавление человеком в другое состояние с аргументами в неправильном порядке. –