반응형
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
유형 이면 정의 된 이름을 제공합니다.Status
status.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
반응형
'developer tip' 카테고리의 다른 글
C # 4.0에서 작업을 절전 (또는 지연)하는 방법은 무엇입니까? (0) | 2020.11.07 |
---|---|
Bash에서 읽기 전용 변수 설정 해제 (0) | 2020.11.07 |
헤드리스 인터넷 브라우저? (0) | 2020.11.07 |
알 수없는 수의 인수를 자바 스크립트 함수에 전달 (0) | 2020.11.07 |
와일드 카드를 사용하여 PostgreSQL에서 여러 테이블을 삭제하는 방법 (0) | 2020.11.07 |