美好的一天!
我有一个仅实现一个方法的接口(interface)。我不想创建几个都实现这一单一方法的类,因此我决定使用匿名类。
我对某些静态项目使用枚举,这些枚举具有我的界面的实例。然而,当我尝试在枚举常量中创建一个匿名类时,我的 IDE (eclipse) 实际上什么也没告诉我(就好像它在代码块之外一样)。
我的问题如下:我可以在枚举常量中使用匿名类吗?
如果我的文字不清楚(抱歉我不是英语),请参阅下面的示例。
代码示例
/**
* My Interface
*/
public interface IPotato {
public void eatPotato();
}
/**
* My enum class
*/
public enum PotatoEnum {
I_WANT_TO_EAT_POTATO(new IPotato() {
@Override
public void eatPotato() {
// Cant put code here.
} });
private IPotato _myAnonymousClass;
private PotatoEnum(IPotato anonymousClass){
this._myAnonymousClass = anonymousClass;
}
public IPotato getPotato(){
return _myAnonymousClass;
}
}
最佳答案
您可以这样做,这是一个完全有效的解决方案。
作为建议,让您的枚举实现您的接口(interface)以使代码更具可读性:
public enum PotatoEnum implements IPotato{
I_WANT_TO_EAT_POTATO(){
@Override
public void eatPotato() {
// Cant put code here.
}},//more ENUMS ;
}
关于java - (JAVA Enums) - 枚举常量内的匿名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35156587/