我有一个枚举:
public enum Status{
A("A"),
B("B"),
C("C"),
D("D"),
E("E")
}
Run Code Online (Sandbox Code Playgroud)
A,B,C属于一个类别,D&E属于不同类别.现在当我得到一个字符串时,我想决定它属于哪个类别.基本上,
String s;
if s.equals( Status.A.toString()) || s.equals(Status.B.toString()) || s.equals( Status.C.toString())
return 1;
else return 2;
Run Code Online (Sandbox Code Playgroud)
现在,这可以通过5个字母来管理.如果我有26个字母,if条件的数量将无法管理.有没有更好的方法来写这个?
而不是在代码中决定类别,而是将其存储在enum自身中.您不仅限于单个存储属性; 你可以拥有任意多的人.
更改构造函数以获取除字母之外的类别,并将其存储在enum:
public enum Status {
A("A", 1),
B("B", 1),
C("C", 1),
D("D", 2),
E("E", 2);
private String name;
private int category;
public String getName() { return name; }
public int getCategory() { return category; }
Status(String name, int category) {
this.name = name;
this.category = category;
}
}
Run Code Online (Sandbox Code Playgroud)
现在很清楚哪个枚举属于哪个类别,因为类别是以声明方式而不是算法方式分配的.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |