奇妙な問題がありますが、それがコンパイラの問題なのか、インターフェイスを使用した列挙型の理解なのかわかりません。私は IntelliJ IDEA 12 を使用して Android プロジェクトを構築しています。次のようなクラスがあります。
public class ClassWithEnum {
private MyEnum myEnum;
//Trying to access it internally here throws the error
public boolean isActionable() {
return myEnum.isActionable();
}
public enum MyEnum implements Action {
ACTIONABLE() {
@Override
public boolean isActionable() { return true; }
},
NOT_ACTIONABLE() {
@Override
public boolean isActionable() { return false; }
}
}
public interface Action {
public boolean isActionable();
}
}
現在、これは最初は機能していましたが、現在、コンパイラーはエラーで不平を言っています (そして、まったく新しいプロジェクトでも同じ結果でこれを試しました)。
java: /Users/kcoppock/Documents/Projects/EnumInterfaceTest/src/com/example/EnumInterfaceTest/ClassWithEnum.java:11: cannot find symbol
symbol : method isActionable()
location: class com.example.EnumInterfaceTest.ClassWithEnum.MyEnum
以前にこれを行ったことがあります(インターフェイスによって定義された動作を含む列挙)。問題はありません。何かご意見は?