我有一个枚举:
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;
}
}
原文由 ByeBye 发布,翻译遵循 CC BY-SA 4.0 许可协议
TLDR:不,你不应该!
如果您在
Enum.java
中参考ordinal
方法的 javadoc:首先 - 阅读手册(在本例中为 javadoc)。
其次 - 不要编写脆弱的代码。枚举值将来可能会更改,您的第二个代码示例更加 清晰 和可 _维护_。
如果在
PARENT
和GRANDPARENT
之间插入一个新的枚举值,你肯定不想为将来制造问题。