Java中枚举类(enum)的实用小技巧

前言:

最新在朋友的代码中看到的一种比较新颖一点的枚举类的实用例子,赶紧比较新颖的所以就想着先记下来。


实用技巧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);
    }
}

猜你喜欢

转载自blog.csdn.net/XikYu/article/details/132905527