【发布时间】:2017-11-23 01:41:32
【问题描述】:
我有一个枚举:
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;
}
}
【问题讨论】:
-
你还需要一个数值吗?枚举值可以直接相互比较。例如,
if (Persons.CHILD.compareTo(Persons.PARENT) < 0) System.out.println("CHILD has a smaller value than PARENT."); -
“枚举的序数”?那将是枚举。
-
人们经常做这种事情,但它使代码维护更加困难。
-
也许这根本不是枚举的工作。
-
这里没有理由使用
Integer对象而不是int值。
标签: java enums coding-style verbose