我有一个类
,其中包含一组公共(public)字符串
。我想将它们分组,以便从另一个 Class
访问它们不会那么困惑。
例如,以下行将打印该字段。
System.out.println(ClassName.GroupName.FIELD);
我实现这个的方法是:
public class ClassName{
public static class GroupName{
public static final String FIELD = "TEXT";
public static final String FIELD1 = "TEXT";
}
public static class GroupName1{
public static final String FIELD2 = "TEXT";
}
}
但我认为使用枚举
来完成此类任务会更有效。
问题是我必须为每个组写这个:
public enum GroupName{
FIELD ("TEXT"), FIELD1 ("TEXT");
private String text;
Extra(String text) {
this.text = text;
}
public String toString() {
return text;
}
}
因此,Class
会变得太大,而且坦率地说,它看起来不会那么整洁。
如果我能做这样的事情,我会更喜欢它:
public class EnumInterface{
private String text;
public EnumInterface(String text){
this.text = text;
}
public String toString(){
return text;
}
}
public enum GroupName extends EnumInterface{
FIELD("TEXT"), FIELD1("TEXT")
}
但不幸的是枚举
无法扩展类
,并且如果EnumInterface
是一个实际的接口(interface)
,那么我将无法在那里拥有字段
、构造函数
或方法
。
有什么建议吗?
最佳答案
按照 Andy Turner 的指示, here ,我仍然使用 Classes
而不是 Enums
。
但我也制作了这个私有(private)构造函数:
private GroupName(){
throw new UnsupportedOperationException("This class cannot be instantiated.");
}
使得该类在任何情况下都无法被实例化。
关于java - 如何创建具有公共(public)属性的枚举组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40545126/