JAVA Enum Value로 Key 찾아오기

2023. 7. 6. 08:59웹개발/Spring Boot

728x90
public enum GubunCode {

    GUBUN1("GUBUN1_value11", "GUBUN1_value12", "GUBUN1_value13"),
    GUBUN2("GUBUN1_value21", "GUBUN1_value22", "GUBUN1_value23");

    private final String displayValue1;
    private final String displayValue2;
    private final String displayValue3;

    private GubunCode(String displayValue1, String displayValue2, String displayValue3){
        this.displayValue1 = displayValue1;
        this.displayValue2 = displayValue2;
        this.displayValue3 = displayValue3;
    }

    public String displayValue1() {
        return displayValue1;
    }

    public String displayValue2() {
        return displayValue2;
    }

    public String displayValue3() {
        return displayValue3;
    }

    private static final Map<String, GubunCode> BY_DISPLAYVALUE1 = Stream.of(values()).collect(Collectors.toMap(GubunCode::displayValue1, Function.identity()));

    private static final Map<String, GubunCode> BY_DISPLAYVALUE2 = Stream.of(values()).collect(Collectors.toMap(GubunCode::displayValue2, Function.identity()));

    public static GubunCode valueOfDisplayValue1(String displayValue1) {
        return BY_DISPLAYVALUE1.get(displayValue1);
    }

    public static GubunCode valueOfDisplayValue2(String displayValue2) {
        return BY_DISPLAYVALUE2.get(displayValue2);
    }

}

JAVA Enum Value로 Key 찾아오는 기본 Enum 클래스를 만들고

GubunCode.valueOfDisplayValue2("GUBUN1_value12").displayValue2();
GubunCode.valueOfDisplayValue2("GUBUN1_value12").displayValue3();

사용시에는 위의 코드와 깉이 사용하면 된다

더 많거나 다른값으로 하려면 Enum 클래스에서 추가 설정을 해주면된다.

728x90
반응형