【初心者】Java質問・相談スレ18【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0696デフォルトの名無しさん
NGNGclass Enum {
public static final Enum ENUM_A = new Enum();
public static final Enum ENUM_B = new Enum();
private Enum() {}
}
こうすれば、同一VM内ではEnumインスタンスは0個、ENUM_AとENUM_Bはそれぞれ
最大1つずつってことを強制できる。これで equals メソッドはObjectクラスで定義され
ているインスタンス比較のものをそのまま使うことができる。
>>593 のように Enum クラス自体がインスタンス生成可能で、内部の列挙定数が
非スタティックフィールドだと、複数の ENUM_A や ENUM_B のインスタンスが作られ
てしまう可能性があって、うまくないかも。
なので、コンストラクタをプライベートにして、各列挙定数をスタティックに。
■ このスレッドは過去ログ倉庫に格納されています