我有枚举
enum Number{
FIRST(123),
SECOND(321);
}
Number nr=Number.FIRST
如何在不创建新方法的情况下从变量 nr 获取枚举值(不是 String 而是 int )?
我有枚举
enum Number{
FIRST(123),
SECOND(321);
}
Number nr=Number.FIRST
如何在不创建新方法的情况下从变量 nr 获取枚举值(不是 String 而是 int )?
在 Java 中,枚举也是对象。为要传入的数字提供一个构造函数,以及一个公共实例变量;不需要getter方法。
enum Num{
FIRST(123),
SECOND(321);
public final int value;
private Num(int value) { this.value = value; }
}
TL;DR:你不能。
长版:
您上面的代码片段将无法编译,因为您缺少构造函数:
private int value;
public Number(int i) {
this.value = i;
}
完成此操作后,您将需要为以下内容提供 getter value
:
public int getValue() {
return this.value;
}
编辑:如果你真的,真的,不想创建一个新方法,你可以制作value
field public
,但你违反了封装的OO概念(即最佳实践)。
您需要像这样编写您的枚举(另外,请不要调用它Number
!有java.lang.Number
):
enum MyNumber
{
FIRST(123),
SECOND(321);
private final int number;
MyNumber(final int number)
{
this.number = number;
}
public int getNumber()
{
return number;
}
}
如果您不想要访问器,请删除 getter 并number
公开。