我已经写了一个枚举类,我想按类型获取属性或按属性获取类型,但这似乎是不可能的。
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)
工作? 最佳答案
您需要做的就是添加一个默认情况,以便该方法始终返回某些内容或引发异常:
AreaCode area(int n){
switch (n) {
case 7927: return AreaCode.area1;
case 7928: return AreaCode.area2;
case 7929: return AreaCode.area3;
default: return null;
}
}
也许更好
AreaCode area(int n){
switch (n) {
case 7927: return AreaCode.area1;
case 7928: return AreaCode.area2;
case 7929: return AreaCode.area3;
default: throw new IllegalArgumentException(String.valueOf(n));
}
}
关于java - 如何通过其属性获取枚举类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7888560/