我有一个看起来有点像这样的枚举:
public enum Numbers {
ONE(1), TWO(2), THREE(3);
public final int num;
public Numbers(int num) {
this.num = num;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够从参数转换为枚举,例如从int 1转换为枚举ONE.Java Enums中是否有任何内置机制来执行此操作,或者我是否必须为其编写自己的逻辑?
是的,你必须编写自己的逻辑,因为num变量是你自己的逻辑的一部分:
public enum Numbers {
ONE(1), TWO(2), THREE(3);
public final int num;
private Numbers(int num) {
this.num = num;
}
public static Numbers getNumber(int i){
for(Numbers number : Numbers.values()){
if(i == number.num){
return number;
}
}
throw new IllegalArgumentException("This number doesn't exist");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |