Java

자바 열거형 Find Value

NaHyungMin 2022. 9. 23. 13:09

예전 코드와 데이터베이스에서 레거시 발견.

아무런 부가설명없이 1,2로 나눠져 있어서 유지보수에 어려움이 생길거라 생각.

public enum PartnerInquiryTypes {
  Account(1),
  Name(2);

  private int value;
  PartnerInquiryTypes(int value) {
    this.value = value;
  }

  public static PartnerInquiryTypes findByValue(final int findValue){
    return Arrays.stream(values()).filter(value -> value.value == findValue).findFirst().orElse(null);
  }

  public int getValue() {
    return value;
  }
}

 

@Test
public void testBankInquiry() {
  PartnerInquiryTypes partnerInquiryTypes = PartnerInquiryTypes.findByValue(1);
  System.out.println(partnerInquiryTypes);
}

 

Name으로 찾는 법

PartnerAlpha3 alpha3 = PartnerAlpha3.valueOf(countryAlpha3.toUpperCase());