私はJavaを使い慣れていないので、このような質問に答えが見つからないようです。Javaで列挙型のインスタンスを作成する必要があるのはなぜですか?
私はCの背景から来て、ちょうどそう...
enum Security_Levels
{
black_ops,
top_secret,
secret,
non_secret
};
だから私はblack_opsを使用することができ、私は0になるだろうのような列挙型の名前を呼び出すことにより、列挙型を作成し、それらを使用して使用します。
Javaでは、別のフォルダに列挙型を定義し、それを使用する場所にインポートすることができます。しかし、Cとは異なり、私はenumオブジェクトを簡単に呼び出すことはできません。私はそれが動作しないプレビューを呼び出そうとすると
public enum GroupID
{
camera,
projector,
preview,
slr,
led
}
...私はインスタンスを作っても、
GroupID egroupid_preview = GroupID.preview;
次に列挙オブジェクトのインスタンスを作成する必要があり、私が作成する必要があります以下のように値にアクセスするpublic関数。
public enum GroupID
{
camera(1),
projector(2),
preview(3),
slr(4),
led(5);
private int val;
private GroupID(int val) {
this.val = val;
}
int getVal() {
return val;
}
}
これはすべて間違っているのですか、それともJavaが列挙型にアクセスするのが難しいのですか?
を「私が作成する必要があり、これらは一般的名称で使用されていますenumオブジェクトのインスタンス " - インスタンスを作成していません。 「値にアクセスするためのパブリック関数を作成する必要があります」 - つまり、 'enum'には「値」を指定する必要はなく、その値は' int'である必要はありません。 – CommonsWare
http://stackoverflow.com/questions/8157755/how-to-convert-enum-value-to-int http://stackoverflow.com/questions/3990319/storing-integer-values-as-constants-in -enum-manner-in-java –
あなたはint型の列挙型を考えていますが、それは実際にJavaでのものではありません。 Enums _are_ objects。 –