因此,我需要维护一些String常量文字,并想知道要使用哪个常量,为什么? 下面是3种实现方式
使用课程
Class Constants{
public static final String Constants1;
public static final String Constants1;
}
使用界面
interfaceConstants{
String Constants1;
String Constants1;
}
使用枚举
enum Constants{
CONSTANT1("constant1");
CONSTANT2("constant2");
//----constructor and getter implementation
}
除了可以对所有值进行迭代之外,使用枚举还有一个优点 因为每次我需要用枚举来枚举 enum.CONSTANT.toString()或enum.CONSTANT.getValue()
这种pf链接对我来说似乎对Constants.Constant1从类/接口,特别是用于从地图等检索值时,
修改: 我尝试了一段代码,意识到我实际上不需要使用方法链,我可以简单地使用enum.CONSTANT1覆盖toString方法
答案 0 :(得分:0)
枚举是必经之路。首先,请考虑以下示例:
enum Size {
SMALL, MEDIUM, LARGE
}
class Drink {
private Size size;
public Drink(Size size) {
// no need to verify legal size
this.size = size;
}
}
如果使用常量,则必须检查大小以确保其在适当的范围内。指定一个枚举,您只有三个选择。无需检查。
在上面的示例中,您还可以为每个常量使用构造函数以添加特定大小(例如12、16、20 oz)。
此外,还有一个EnumSet
类,可以轻松地代替常量来传递和操作enums
。这是一个示例:
EnumSet<Size> s = EnumSet.of(Size.SMALL, Size.LARGE);
System.out.println(s); // prints [SMALL, LARGE]
s = EnumSet.complementOf(s);
System.out.println(s); // prints [MEDIUM]