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());
}
}
}
코드의 명확성과 안전성: enum
타입을 사용하면 상수 값을 직접 다루지 않아도 되므로 코드가 더 명확하고, 잘못된 값을 사용할 위험이 줄어듭니다. values()
와 valueOf()
메서드는 이러한 열거형 상수를 다루는 데 있어 안전하고 편리한 방법을 제공합니다.
모든 상수의 순회: values()
메서드를 사용하면 열거형 타입의 모든 상수를 쉽게 순회할 수 있습니다. 이는 설정, 디버깅, 로깅 등에 유용합니다.
문자열을 통한 상수 접근: valueOf()
메서드를 사용하면 문자열을 통해 특정 열거형 상수에 접근할 수 있습니다. 이는 주로 외부 입력(예: 사용자 입력, 파일, 네트워크 등)에서 열거형 상수를 얻을 때 유용합니다.
values()
메서드는 모든 열거형 상수들을 배열로 반환하며, 이를 통해 모든 상수를 순회하거나 출력할 수 있습니다.valueOf()
메서드는 주어진 이름과 일치하는 열거형 상수를 반환하며, 문자열을 통해 특정 열거형 상수에 접근할 때 사용됩니다.이 두 메서드는 enum
타입을 더욱 유용하고 강력하게 만들어 주며, 열거형 상수를 다루는 데 있어 필수적인 도구들입니다.