基本的に私が行ったことは、州の列挙型を記述することだけであり、州としてもアクセスできるだけでなく、省略形や元のコロニーにアクセスできるようにしたい。複数の値型を持つJava enum
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];
}
}
これは私が期待するように動作するようです。 I列挙型を含む、この特定のシナリオのためにすることができます
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"
、これはこれを行うか、セットアップへのより良い方法があると、この列挙型をフォーマットするための最良の方法ですか?すべてのおかげで、事前に!
方法はすべて大文字であってはなりません。 –
列挙型ではありませんか?通常は私はラクダのケースを使用しますが、決して変更されない静的なものを参照するときは、enum自体のようにすべて大文字にする必要があります。 –
'name'、' abbreviation'、 'isOriginalColony'のようなフィールドを実際に持ち、'(String、String、boolean) 'を取るコンストラクタを持っていた方が良いでしょう。そうすれば、より読みやすくなり、別の状態で引数を間違った順序で追加することを防ぐことができます。 –