반응형
열거 형에 저장된 값을 문자열 리터럴으로 사용하는 가장 좋은 방법은 무엇입니까? 예 :
public enum Modes {
some-really-long-string,
mode1,
mode2,
mode3
}
그런 다음 나중에 mode.mode1
를 사용하여 문자열 표현을 mode1
로 되돌릴 수 있습니다. mode.mode1.tostring ()
를 호출하지 않고
해결 방법
너는 할 수 없다.나는 네가 네 가지 옵션을 가지고 있다고 생각한다.네 명 모두는 솔루션을 제공하지만 약간 다른 접근 방식으로 ...
옵션 1 : 열거 형에 내장 된 name ()
을 사용하십시오.특별한 이름 지정 형식이 필요하지 않은 경우에는 완벽하게 괜찮습니다.
String name = Modes.mode1.name(); // Returns the name of this enum constant, exactly as declared in its enum declaration.
옵션 2 : 더 많은 제어를 원하는 경우 열거 형에 대체 속성을 추가하십시오.
public enum Modes {
mode1 ("Fancy Mode 1"),
mode2 ("Fancy Mode 2"),
mode3 ("Fancy Mode 3");
private final String name;
private Modes(String s) {
name = s;
}
public boolean equalsName(String otherName) {
// (otherName == null) check is not needed because name.equals(null) returns false
return name.equals(otherName);
}
public String toString() {
return this.name;
}
}
옵션 3 : enums 대신 정적 결승전 사용 :
public final class Modes {
public static final String MODE_1 = "Fancy Mode 1";
public static final String MODE_2 = "Fancy Mode 2";
public static final String MODE_3 = "Fancy Mode 3";
private Modes() { }
}
옵션 4 : 인터페이스 모든 필드, 정적 및 최종 :
public interface Modes {
String MODE_1 = "Fancy Mode 1";
String MODE_2 = "Fancy Mode 2";
String MODE_3 = "Fancy Mode 3";
}
참조 페이지 https://stackoverflow.com/questions/6667243
반응형
'자바' 카테고리의 다른 글
배열에서 요소 제거 (Java) (0) | 2021.04.09 |
---|---|
Java에서 상수를 구현하는 가장 좋은 방법은 무엇입니까? (0) | 2021.04.09 |
hashmap을 직접 초기화하는 방법 (리터럴 방식으로)? (0) | 2021.04.09 |
java.net.connectException : 연결 거부되었습니다 (0) | 2021.04.09 |
ArrayList의 마지막 값을 얻는 방법 (0) | 2021.04.09 |
댓글