enum 타입에서 .values 와 .valueOf 의 사용

CosmoNumb·2024년 7월 19일
0

java

목록 보기
3/24

Java의 enum 타입은 열거형 상수를 정의하는 데 사용되며, values()valueOf() 메서드는 enum에서 자주 사용되는 두 가지 메서드입니다.

values() 메서드

values() 메서드는 모든 열거형 상수들을 배열로 반환합니다. 이 메서드는 컴파일러가 자동으로 생성하는 메서드로, 모든 열거형 타입에 대해 사용할 수 있습니다. 주로 모든 열거형 상수들을 순회하거나 출력할 때 사용됩니다.

사용 예제

public enum Grade {
    BASIC,
    GOLD,
    DIAMOND
}

public class Main {
    public static void main(String[] args) {
        // 모든 열거형 상수들을 배열로 반환
        Grade[] allGrades = Grade.values();
        
        // 열거형 상수들을 순회하며 출력
        for (Grade grade : allGrades) {
            System.out.println(grade);
        }
    }
}

valueOf() 메서드

valueOf() 메서드는 지정된 이름을 가진 열거형 상수를 반환합니다. 이 메서드는 열거형 타입에서 특정 이름을 가진 상수를 얻고자 할 때 사용됩니다. 만약 존재하지 않는 이름을 전달하면 IllegalArgumentException이 발생합니다.

사용 예제

public enum Grade {
    BASIC,
    GOLD,
    DIAMOND
}

public class Main {
    public static void main(String[] args) {
        // 문자열을 사용하여 열거형 상수를 얻기
        Grade grade = Grade.valueOf("GOLD");
        
        System.out.println("Grade: " + grade);
        
        // 존재하지 않는 이름을 사용하면 예외 발생
        try {
            Grade invalidGrade = Grade.valueOf("PLATINUM");
        } catch (IllegalArgumentException e) {
            System.out.println("Invalid grade: " + e.getMessage());
        }
    }
}

사용 이유

  1. 코드의 명확성과 안전성: enum 타입을 사용하면 상수 값을 직접 다루지 않아도 되므로 코드가 더 명확하고, 잘못된 값을 사용할 위험이 줄어듭니다. values()valueOf() 메서드는 이러한 열거형 상수를 다루는 데 있어 안전하고 편리한 방법을 제공합니다.

  2. 모든 상수의 순회: values() 메서드를 사용하면 열거형 타입의 모든 상수를 쉽게 순회할 수 있습니다. 이는 설정, 디버깅, 로깅 등에 유용합니다.

  3. 문자열을 통한 상수 접근: valueOf() 메서드를 사용하면 문자열을 통해 특정 열거형 상수에 접근할 수 있습니다. 이는 주로 외부 입력(예: 사용자 입력, 파일, 네트워크 등)에서 열거형 상수를 얻을 때 유용합니다.

정리

  • values() 메서드는 모든 열거형 상수들을 배열로 반환하며, 이를 통해 모든 상수를 순회하거나 출력할 수 있습니다.
  • valueOf() 메서드는 주어진 이름과 일치하는 열거형 상수를 반환하며, 문자열을 통해 특정 열거형 상수에 접근할 때 사용됩니다.

이 두 메서드는 enum 타입을 더욱 유용하고 강력하게 만들어 주며, 열거형 상수를 다루는 데 있어 필수적인 도구들입니다.

0개의 댓글