我已经创建了一个枚举:
enum Types { hi, hello, bye }
我在每个枚举中添加了一个getter:
enum Types {
hi {
String test = "From hi";
public String getString() {
return test;
},
etc.
}
除了我不能调用“Types.hi.getString()”。有没有办法做到这一点?谢谢!
答案 0 :(得分:8)
在您的枚举类中,将您要访问的方法定义为public abstract
。
像这样:
enum Types {
hi {
public String getString() {
return "From hi";
}
};
public abstract String getString();
}
作为替代方案,让你的枚举类实现一个接口:
public interface StringProvider {
String getString();
}
public enum Types implements StringProvider {
...
}
答案 1 :(得分:0)
方法和字段声明应该在枚举内(即类型)。嗨,再见和你好是类型的实例。
答案 2 :(得分:-1)
你做得并不完全正确 Sun有一个关于如何在枚举中包含方法和字段的文档。这里it是。