私は最終的に Java で を実装する理由がありenum
、1.6 では無効な型であることがわかりました。だから私は列挙型を次のように宣言します
public enum MyEnum = {A=0, B=1, C=3};
Eclipseで無効なタイプのエラーを取得します。
私は最終的に Java で を実装する理由がありenum
、1.6 では無効な型であることがわかりました。だから私は列挙型を次のように宣言します
public enum MyEnum = {A=0, B=1, C=3};
Eclipseで無効なタイプのエラーを取得します。
それは彼らが使用される方法ではありません。http://docs.oracle.com/javase/tutorial/java/javaOO/enum.htmlで例を参照してください。
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
Java 列挙型は、たとえば C# よりもはるかに強力です。それらは (ほぼ) 本格的なオブジェクトであるため、数値だけで表すことはできません。ただし、数値を含めることができ、序数値を持ちます。
あなたはで数値を持つことができます
public enum MyEnum {
A(0), B(1), C(3);
private final int number;
MyEnum(int number) {
this.number = number;
}
}
Javaenums
は C や C++ とはまったく異なりますenums
。最大の違いは、enum
定数がコンパイル時の整数定数ではなく、本格的なオブジェクトであることです。
あなたの例ではA
、B
とC
はオブジェクトです。したがって、次のような構成A=0, B=1, C=3
は許可されません。
チュートリアルをご覧になることをお勧めします。
数値を定数に関連付ける必要がある場合enum
は、次のように同様の効果を得ることができます。
public enum MyEnum {
A(0), B(1), C(3);
public final int val;
private MyEnum(int val) {
this.val = val;
}
}
MyEnum.A.val
これを行うと、 etcを使用して値にアクセスできます。
Java では、enum
は型ですが、整数とは互換性がありません。Enum オブジェクトは、メソッドやメンバー変数などを持つことができるという点で、プリミティブよりもクラスに近いです。
Java では、次のように、列挙型にメンバーを追加し、int
列挙型メンバーごとに異なる方法で初期化することにより、必要な効果を得ることができます。
public enum MyEnum {
A(1), B(2), C(3);
int val;
private MyEnum (int v) {
val = v;
}
public int value() {
return val;
}
};
の各メンバーには、列挙の対応する要素に関連付けられた整数値を返すenum
public メソッドがあります。value()
あなたがするようにこれを行うことはできません。enum
次のようにJavaで定義します
enum myenum{a,b,c,d}
あなたの質問に答えるにenum
は: 技術的にはタイプではありません。enum
したがって、試みたようにタイプの変数を定義することはできません。
enum
特殊なデータ型である列挙型 (enum と省略) を定義するためのキーワードです。列挙型が定義されると (クラスを定義する方法と非常によく似ています)、列挙型の名前を使用してそれを参照します。列挙型のドキュメントを確認してください。
public enum ModuleType {A,B,C}