我的Class
包含一组public Strings
。我想将它们分组,以便从另一个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";
}
}
但我认为使用enums
进行此类任务会更有效率。
问题是我必须为每个组写这个:
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")
}
但遗憾的是enums
无法展开classes
,如果EnumInterface
是实际interface
,那么我将无法拥有field
,{{1 }},或constructor
那里。
有什么建议吗?
答案 0 :(得分:0)
根据Andy Turner here的指示,我仍然使用 Classes
而不是Enums
。
但我也做了这个私人构造函数:
private GroupName(){
throw new UnsupportedOperationException("This class cannot be instantiated.");
}
因此在任何情况下都无法实例化此类。