Java 基本整数枚举
我创建了一个非常基本的枚举Java 基本整数枚举,java,Java,我创建了一个非常基本的枚举 public enum StatusCode { OK(0, "Everything ran correctly"), ERROR(4, "Fatal Error"); private final int value; private final String description; StatusCode(final int value, final String description) { this.value = value; this.
public enum StatusCode {
OK(0, "Everything ran correctly"),
ERROR(4, "Fatal Error");
private final int value;
private final String description;
StatusCode(final int value, final String description) {
this.value = value;
this.description = description;
}
public int getValue() { return value; }
public String getDescription() { return description; }
}
在我的方法中,我试图返回一个整数
public Integer func() {
return StatusCode.OK; // Inside method
}
错误:
类型不匹配:无法从StatusCode转换为整数
我知道我可以做StatusCode.OK.getValue()
,但看起来很奇怪。默认情况下,StatusCode.OK
如何为整数
默认情况下,StatusCode.OK如何为整数
不可能。它不是一个整数
,而是一个状态码
这样更好。任何人都可以创建一个整数
,其值在该范围内。但是你不能创建一个新的StatusCode
,因此你知道你得到的肯定是[这一小部分值]之一。Java枚举不是C/C++/C#枚举。它们不是伪装的整数,它们更像伪装的类
(事实上,他们是伪装的阶级--)
而在C#enum{Foo,Bar}
中会有隐式值Foo=0
和Bar=1
,而在Java中则不是这样
您的行
StatusCode.OK.getValue()
在Java中是正确的做法。“我知道我可以做StatusCode.OK.getValue(),但它看起来很奇怪”为什么?“StatusCode.OK怎么能默认为整数?”它不能。我不认为这看起来很奇怪。