我正在尝试使用enum类,其中包含在其中声明的常量的接口。
实际值:
public interface MyConstants {
public static final String MY_DATE_FORMAT ="mm/dd/yy";
public static final int BATCH_SIZE=500;
}
我正在尝试以下方式。
public enum MyConstants {
MY_DATE_FORMAT("sdes");
BATCH_SIZE(3);
MyConstants(String ds){
}
MyConstants(int st){
}
}
但我在" BATCH_SIZE(3);
"时遇到语法错误。请帮我解决这个问题。
答案 0 :(得分:1)
使用常量接口是一种反设计模式,应该避免使用。
3是int
,构造函数参数需要String
。改为通过Integer.toString(3)
。为什么不使用带有私有构造函数的final类?
此外,如前所述,您必须使用,
分隔枚举,然后通过将;
放在最后来指定您已完成声明枚举。
答案 1 :(得分:0)
您需要将它们分开,而不是;
public enum MyConstants {
MY_DATE_FORMAT("sdes"), BATCH_SIZE(3);
MyConstants(String ds) {
}
MyConstants(int st) {
}
}
答案 2 :(得分:0)
您的代码应为:
public enum MyConstantsEnum
{
MY_DATE_FORMAT("sdes"), BATCH_SIZE(3);
MyConstantsEnum(final String value)
{
// do something
}
MyConstantsEnum(final int value)
{
// do something
}
}
请注意MY_DATE_FORMAT之后的逗号,而不是您的分号。
也就是说,这种设计可能会在下游产生重大问题。