前言:
最新在朋友的代码中看到的一种比较新颖一点的枚举类的实用例子,赶紧比较新颖的所以就想着先记下来。
实用技巧1:
假如你有个需求,必须要求前端传入的码值为 0 或者 1 ,传入其他的均为非法值,如果你不想使用if else 进行判断。这时就可以使用枚举来轻松解决这个问题、代码示例:
public enum BinaryValue {
ZERO(0),
ONE(1);
private final int value;
BinaryValue(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public static BinaryValue fromInt(int value) {
for (BinaryValue binaryValue : BinaryValue.values()) {
if (binaryValue.value == value) {
return binaryValue;
}
}
throw new IllegalArgumentException("传入的值必须是0或1");
}
}
实用技巧2:
假如你想根据你传入的码值获取对应的字符串值、代码示例如下:
public enum SevenKingdoms {
ONE(1, "国家一"),
TWO(2, "国家二"),
THREE(3, "国家三"),
FOUR(4, "国家四"),
FIVE(5, "国家五"),
SIX(6, "国家六"),
SEVEN(7, "国家七");
private final int value;
private final String countryName;
SevenKingdoms(int value, String countryName) {
this.value = value;
this.countryName = countryName;
}
public int getValue() {
return value;
}
public String getCountryName() {
return countryName;
}
public static SevenKingdoms getByValue(int value) {
for (SevenKingdoms kingdom : values()) {
if (kingdom.getValue() == value) {
return kingdom;
}
}
throw new IllegalArgumentException("无效的国家代码: " + value);
}
}