如何通过其属性获取枚举类型?
我已经编写了一个枚举类,我想按类型获取属性或按属性获取类型,但这似乎是不可能的。
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));
}
}
以上是 如何通过其属性获取枚举类型? 的全部内容, 来源链接: utcz.com/qa/426386.html