我写了一个枚举类,我想要么按类型获取属性,要么按属性获取类型,但这似乎不可能。
public enum AreaCode {
area1(7927),
area2(7928),
area3(7929);
private final int ac;
AreaCode(int ac) {
this.ac = ac;
}
int areaCode(){
return ac;
}
AreaCode area(int n) {
switch (n) {
case 7927: return AreaCode.area1;
case 7928: return AreaCode.area2;
case 7929: return AreaCode.area3;
}
}
}
上面的代码不会编译。如何使 area(int n)
工作?
最佳答案
除了其他发帖者指出的问题外,我会重写方法以避免重复信息(keep it DRY !):
public static AreaCode area(int n) {
for (AreaCode c : values()) {
if (c.ac == n) {
return c;
}
}
// either throw the IAE or return null, your choice.
throw new IllegalArgumentException(String.valueOf(n));
}
关于java - 如何通过属性获取枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888560/