这是一个简单的问题:
有没有可能有一个带有变量值的枚举?
为了清楚起见,我想创建一个枚举,它对应于函数返回的错误代码,它是两个字节,所以我想做如下操作
public enum ErrorCode {
ERR_NONE ((byte)0x9000), // No error
ERR_PARAM ((byte)0x8200), // Parameter error
ERR_DATA ((byte)0x83XX), // XX could be any value
}
如何为所有从0x83开始的值返回ERR_DATA?
有可能吗?
谢谢
3条答案
按热度按时间fslejnso1#
下面是根据Dawood ibn Kareem在上面评论中的建议实现的。
一些要点:
ErrorCode
匹配整数代码,你可能也想抛出一个异常,这个实现在这种情况下返回null
,所以如果调用者没有检查null
,你会得到一个NPE,但是你不知道是什么值触发了它。q8l4jmvw2#
编写一个方法,给定0x83NN作为输入,返回ERR_DATA. Done。
在任何情况下都必须编写代码来查找值。没有内在的“将此整数值与此枚举常量相关联,并为给定整数值的枚举常量提供查找”。
注意,对于这个,不需要在枚举的每个成员中存储数值,还要注意,除非定义了合适的构造函数,否则ERR_NONE(0x9000)这样的构造函数调用是无效的,如果定义了合适的构造函数,则需要为ERR_DATA的参数确定一个值。
h7appiyu3#
我觉得不可能,根据甲骨文的说法,
枚举类型是一种特殊的数据类型,它使变量成为一组预定义的常量。变量必须等于为其预定义的值之一。