如何在java中的一个枚举类中声明不同类型的常量

时间:2014-10-23 17:32:55

标签: java

我正在尝试使用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);"时遇到语法错误。请帮我解决这个问题。

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之后的逗号,而不是您的分号。

也就是说,这种设计可能会在下游产生重大问题。