可能重复:
Java: access to the constants in an enumeration (enum)
我正在阅读java中的枚举,我有以下查询..我已经做了一个枚举让我们说..
public enum Currency {
PENNY(1), NICKLE(5), DIME(10), QUARTER(25);
private int value;
private Currency(int value) {
this.value = value;
}
};
现在假设我有一个A类,那么请告诉我如何从A类访问枚举的上述常量,还请让我知道第二种方法,而不是enum我也可以去接口方法enum在界面上提供的优势是什么??
答案 0 :(得分:2)
您需要声明getValue()
方法以返回每个枚举常量的value
属性:
public int getValue() {
return value;
}
像这样使用:
Currency quarter = Currency.QUARTER;
int quarterValue = quarter.getValue(); // it's 25 for the code in the question
请注意,上述值与枚举的序数值不同,可以这样访问:
int quarterOrdinal = quarter.ordinal(); // it's 3 for the code in the question
关于枚举的优点:它们是一种类型安全的方式,用于指定数据类型只有一组有限的可能值。
答案 1 :(得分:1)
枚举为您提供type safety
我认为您在这里遇到的问题是,将值定义为private
。因此您无法访问常量的值。
Remove private
并使用
System.out.println(Currency.DIME.value);
(或)定义value属性的get方法。
答案 2 :(得分:0)
根据有效的java接口常量是不好的做法。接口用于定义不是常量的类型。 从A类开始,您可以定义可以保存枚举值的变量,然后您可以为其指定任何枚举值
Currency penny = Currency.PENNY;