문자열 열거를 만드는 가장 좋은 방법?
어떤 방법이 가장 좋은 방법일까요?enum
type은 문자열 세트를 나타냅니다.
이거 해봤어요.
enum Strings{
STRING_ONE("ONE"), STRING_TWO("TWO")
}
그럼 어떻게 그것들을Strings
?
당신이 무엇을 하고 싶은지 모르겠지만, 당신의 샘플 코드를 실제로 이렇게 번역했습니다.
package test;
/**
* @author The Elite Gentleman
*
*/
public enum Strings {
STRING_ONE("ONE"),
STRING_TWO("TWO")
;
private final String text;
/**
* @param text
*/
Strings(final String text) {
this.text = text;
}
/* (non-Javadoc)
* @see java.lang.Enum#toString()
*/
@Override
public String toString() {
return text;
}
}
또는 getter 메서드를 작성할 수도 있습니다.text
.
이제 할 수 있습니다.Strings.STRING_ONE.toString();
Enum의 커스텀 문자열 값
http://javahowto.blogspot.com/2006/10/custom-string-values-for-enum.html 에서
java enum 기본 문자열 값은 얼굴 값 또는 요소 이름입니다.단, String() 메서드를 덮어쓰면 문자열 값을 맞춤화할 수 있습니다.예를들면,
public enum MyType {
ONE {
public String toString() {
return "this is one";
}
},
TWO {
public String toString() {
return "this is two";
}
}
}
다음 테스트 코드를 실행하면 이것이 생성됩니다.
public class EnumTest {
public static void main(String[] args) {
System.out.println(MyType.ONE);
System.out.println(MyType.TWO);
}
}
this is one
this is two
사용name()
방법:
public class Main {
public static void main(String[] args) throws Exception {
System.out.println(Strings.ONE.name());
}
}
enum Strings {
ONE, TWO, THREE
}
수율ONE
.
열거 이름을 원하는 문자열과 동일하게 설정하거나 일반적으로 임의 속성을 열거 값과 연관지을 수 있습니다.
enum Strings {
STRING_ONE("ONE"), STRING_TWO("TWO");
private final String stringValue;
Strings(final String s) { stringValue = s; }
public String toString() { return stringValue; }
// further methods, attributes, etc.
}
맨 위에 상수를 두고 맨 아래에 메서드/속성을 두는 것이 중요합니다.
문자열로 사용한다는 의미에 따라 여기서 열거형을 사용하지 않을 수도 있습니다.대부분의 경우 Elite Gentlemant가 제안하는 솔루션에서는 예를 들어 다음과 같은 toString 방식으로 사용할 수 있습니다.System.out.println(STRING_ONE)
또는String s = "Hello "+STRING_TWO
단, Strings가 꼭 필요한 경우(예:STRING_ONE.toLowerCase()
)를 상수로 정의하는 것이 좋습니다.
public interface Strings{
public static final String STRING_ONE = "ONE";
public static final String STRING_TWO = "TWO";
}
문자열 Enum에 사용할 수 있습니다.
public enum EnumTest {
NAME_ONE("Name 1"),
NAME_TWO("Name 2");
private final String name;
/**
* @param name
*/
private EnumTest(final String name) {
this.name = name;
}
public String getName() {
return name;
}
}
그리고 메인 메서드에서 호출한다.
public class Test {
public static void main (String args[]){
System.out.println(EnumTest.NAME_ONE.getName());
System.out.println(EnumTest.NAME_TWO.getName());
}
}
컨스트럭터를 사용하지 않고 메서드에 특별한 이름을 붙이려면 다음과 같이 시도해 보십시오.
public enum MyType {
ONE {
public String getDescription() {
return "this is one";
}
},
TWO {
public String getDescription() {
return "this is two";
}
};
public abstract String getDescription();
}
나는 이것이 가장 빠른 해결책이라고 생각한다.변수를 final로 사용할 필요는 없습니다.
기본값으로 가져오고 설정합니다.
public enum Status {
STATUS_A("Status A"), STATUS_B("Status B"),
private String status;
Status(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
}
언급URL : https://stackoverflow.com/questions/3978654/best-way-to-create-enum-of-strings
'programing' 카테고리의 다른 글
vue-link : 라우터 링크에서 밑줄을 삭제하는 방법 (0) | 2022.07.05 |
---|---|
PAGE REGRESH에서 vuex 저장소의 데이터가 손실 (0) | 2022.07.05 |
하루의 시작 시간과 종료 시간을 어떻게 구합니까? (0) | 2022.07.05 |
C++용 가장 빠른 JSON 리더/라이터 (0) | 2022.07.05 |
vue.js에서 붙여넣기(Ctrl+v 또는 마우스 사용) 이벤트를 처리하는 방법 (0) | 2022.07.05 |