public enum Batman
{
Rat, Cat, Bat;
private boolean isMatch;
// Constructor
Batman()
{
this.isMatch = (this.compareTo(Bat) == 0) ? true : false;
}
public boolean isMatch()
{
return this.isMatch;
}
}
コンストラクタ行については、次のエラーが表示されます: 初期化子内の静的列挙フィールド Batman.Bat を参照できません
私は主に、コンストラクターで特定の ENUM を識別できるかどうかを把握しようとしています。
また、「isMatch」値を保存することを考えている理由は、それがどうあるべきかを毎回評価したくないからです。私は最初から知っているので、値を保存したいだけなので、呼び出しが行われたときは評価ではなく、単に値を返すだけです
これを解決する他の方法があることは知っています:
パラメーターを受け入れるようにコンストラクターを変更します。
ネズミ(偽)、猫(偽)、コウモリ(真);
// Constructor Batman(boolean isMatch) { this.isMatch = isMatch; }
isMatch() を変更
public boolean isMatch() { return (this.compareTo(Bat) == 0) ? true : false; }
どんなアドバイスも素晴らしいでしょう。
ありがとう