[英]getting int value from enum in java
我有枚举
enum Number{
FIRST(123),
SECOND(321);
}
Number nr=Number.FIRST
如何在不创建新方法的情况下从变量nr获取枚举值(不是String而是int)?
在Java中,枚举也是对象。 提供要传递的数字的构造函数,以及一个公共实例变量; 不需要吸气剂方法。
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;
}
完成此操作后,您将需要提供获取value
:
public int getValue() {
return this.value;
}
编辑:如果您确实真的不想创建新方法,则可以将value
字段设为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
公开。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.