aho*_*der 1 java int enumeration
只是想就此事提出一些意见.我一直使用int标志,如果我在Java中使用枚举,只是对可能的易用性表现感到好奇吗?
Jon*_*eet 12
我非常怀疑你会看到性能优势 - 在某些情况下甚至会有性能损失,具体取决于你如何使用它们.我怀疑它们是否具有重要意义.
好处不在于性能 - 它是用语言表达或更清楚地表达您的意图,从而产生更易读(和类型安全)的代码.例如,对于整数标志,如果您尝试在方法调用中使用(比方说)HTTP_STATUS_UNAUTHORIZED作为文件共享模式的值,则不会抱怨...如果两者都是枚举,则参数将被强类型化为真正的只允许文件共享模式(或者假设您正在谈论Java ,则为null ).
像往常一样,Effective Java说得最好:
使用
int枚举模式的程序很脆弱.因为int枚举是编译时常量,所以它们被编译到使用它们的客户端中.如果int更改了与枚举常量关联的内容,则必须重新编译其客户端.如果他们不是,他们仍然会运行,但他们的行为将是不确定的.没有简单的方法将
int枚举常量转换为可打印的字符串.如果您打印这样的常量或从调试器显示它,您所看到的只是一个数字,这不是很有用.没有可靠的方法来迭代组中的所有int枚举常量,甚至无法获得int枚举组的大小.
(还有10页以上的枚举更好:-))
| 归档时间: |
|
| 查看次数: |
1713 次 |
| 最近记录: |