programing

문자열 열거를 만드는 가장 좋은 방법?

firstcheck 2022. 7. 5. 00:09
반응형

문자열 열거를 만드는 가장 좋은 방법?

어떤 방법이 가장 좋은 방법일까요?enumtype은 문자열 세트를 나타냅니다.

이거 해봤어요.

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

반응형