如何通过其属性获取枚举类型?

我已经编写了一个枚举类,我想按类型获取属性或按属性获取类型,但这似乎是不可能的。

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

回到顶部