Ska*_*rab 98 java enums specifications
我有一个枚举SOME_ENUM
:
public enum SOME_ENUM {
EN_ONE,
EN_TWO,
EN_THREE;
}
Run Code Online (Sandbox Code Playgroud)
将SOME_ENUM.values()
始终按枚举声明的顺序返回枚举:
EN_ONE, EN_TWO, EN_THREE
?它是一个规则还是不保证在下一个JDK版本中不会被更改?
它由您的值声明的顺序决定.但是,不保证您(或其他人)将来不会重新排序/插入/删除值.所以你不应该依赖订单.
有效的Java第二.Edition将其第31项专用于一个密切相关的主题:使用实例字段而不是序数:
永远不要从序数中得出与枚举相关的值; 将其存储在实例字段中.
其他答案都很好,但不要对此发表评论:
"它是一个规则还是不保证在下一个Jdk版本中不会被更改?"
我不相信对未来JDK的保证,所以你甚至不应该担心它们.没有办法强制执行它们,未来的JDK主管可能会决定重新考虑这些保证.这就像威斯敏斯特议会制度:"没有议会可以约束未来的议会."
也就是说,JDK的历史表现出极好的一致性.它们不会进行大量重大更改,因此您可以非常确信将保留当前指定的(不仅仅是观察到的)行为.
归档时间: |
|
查看次数: |
29111 次 |
最近记录: |