我有一个枚举:
public enum Persons {
CHILD,
PARENT,
GRANDPARENT;
}
使用有什么问题吗ordinal()
检查枚举成员之间的“层次结构”的方法?我的意思是 - 使用它时除了冗长之外是否有任何缺点,当有人将来可能会意外更改顺序时。
或者最好做这样的事情:
public enum Persons {
CHILD(0),
PARENT(1),
GRANDPARENT(2);
private Integer hierarchy;
private Persons(final Integer hierarchy) {
this.hierarchy = hierarchy;
}
public Integer getHierarchy() {
return hierarchy;
}
}
TLDR:不,你不应该!
如果您参考 javadocordinal
中的方法Enum.java
:
大多数程序员不会使用此方法。这是
设计用于复杂的基于枚举的数据结构,例如
作为java.util.EnumSet
and java.util.EnumMap
.
首先 - 阅读手册(在本例中为 javadoc)。
其次——不要编写脆弱的代码。枚举值将来可能会发生变化,您的第二个代码示例要多得多clear and 可维护的.
如果(例如)在之间插入新的枚举值,您绝对不想为将来带来问题PARENT
and GRANDPARENT
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)