developer tip

Java의 enum에서 문자열 값 가져 오기

optionbox 2020. 11. 7. 09:14
반응형

Java의 enum에서 문자열 값 가져 오기


이와 같이 정의 된 열거 형이 있고 개별 상태에 대한 문자열을 얻을 수 있기를 원합니다. 그러한 방법을 어떻게 작성해야합니까?

상태의 int 값을 가져올 수 있지만 int에서도 문자열 값을 가져 오는 옵션을 원합니다.

public enum Status {
    PAUSE(0),
    START(1),
    STOP(2);

    private final int value;

    private Status(int value) {
        this.value = value
    }

    public int getValue() {
        return value;
    }
}

enum status유형 이면 정의 된 이름을 제공합니다.Statusstatus.name()


values()방법 을 사용할 수 있습니다 .

예를 들어 Status.values()[0]귀하의 경우에는 PAUSE를 반환하고 인쇄하면 toString()"PAUSE"가 인쇄됩니다.


다음과 같이 기본 메소드 이름 ()을 사용하십시오.

public enum Category {
        ONE("one"),
        TWO ("two"),
        THREE("three");

        private final String name;

        Category(String s) {
            name = s;
        }

    }

public class Main {
    public static void main(String[] args) throws Exception {
        System.out.println(Category.ONE.name());
    }
}

이 메서드를 Status 열거 형에 추가 할 수 있습니다.

 public static String getStringValueFromInt(int i) {
     for (Status status : Status.values()) {
         if (status.getValue() == i) {
             return status.toString();
         }
     }
     // throw an IllegalArgumentException or return null
     throw new IllegalArgumentException("the given number doesn't match any Status.");
 }

public static void main(String[] args) {
    System.out.println(Status.getStringValueFromInt(1)); // OUTPUT: START
}

enum에는 API에 .name ()이 있으며 다음 예제와 같이 사용하기가 매우 간단합니다.

private int security;
public String security(){ return Security.values()[security].name(); }
public void setSecurity(int security){ this.security = security; }

    private enum Security {
            low,
            high
    }

이것으로 당신은 단순히 전화 할 수 있습니다

yourObject.security() 

이 예제에서는 문자열로 높음 / 낮음을 반환합니다.

참고URL : https://stackoverflow.com/questions/17741721/getting-string-value-from-enum-in-java

반응형