enum 클래스는 의미있는 심볼릭 상수를 정의하고 싶을 때 많이 사용된다.

enum 클래스에서 심볼릭 상수를 정의할 때, 어떤 불규칙한 값을 담고 싶다면 불규칙한 값들을 담을 수 있는 변수와 생성자를 선언해줘야 한다.

다음은 케릭터 정보에 대한 열거형 상수를 만드는 예제.

public enum CharacterInfoType {
    CHARACTER_INFO_TYPE_NONE(""),
    CHARACTER_INFO_TYPE_CHARACTER_NAME("characterName"),
    CHARACTER_INFO_TYPE_CHARACTER_STATUS("characterStatus"),
    CHARACTER_INFO_TYPE_LOCATION("location");

    @Getter private String type;

    CharacterInfoType(String type) {
        this.type = type;
    }
    
    private static CharacterInfoType find(Predicate<CharacterInfoType> predicate) {
        return Arrays.stream(values())
                .filter(predicate)
                .findAny()
                .orElse(CHARACTER_INFO_TYPE_NONE);
    }

    public static CharacterInfoType fromType(Integer type) {
        return find(e -> Objects.equals(e.type, type));
    }

    public static CharacterInfoType fromString(String enumName) {
        return find(e -> Objects.equals(e.toString(), enumName));
    }
}

 

java.lang.Enum 클래스

Enum 클래스는 Java에서 모든 열거형들의 부모 클래스이다.

따라서, Enum 클래스에 정의된 기능들을 사용할 수 있다.

 

'Programming > Java' 카테고리의 다른 글

[Java] .jar와 .war  (0) 2020.03.20
[Java] 람다와 스트림 ( Lambda, Stream )  (0) 2020.03.05
[Java] default 메서드  (0) 2020.01.29
[Java] Scanner 클래스를 이용한 입/출력  (0) 2019.12.29
[Java] 네트워크 프로그래밍  (0) 2019.12.25