enum에 대해 공부하다 생긴 궁금증
java.lang.Enum.valueOf() 메소드를 왜 사용하는가?
일단 valueOf()는 enum에 요소들의 이름을 문자열로 enum을 찾을 때 사용한다.
매칭되는 enum이 있다면 해당 enum을 가져오겠지만
매칭되는 enum이 없다면 IIegalArgumentException 예외가 발생한다.
enum Color {
RED, GREEN, BLUE
}
//1.
Color color = Color.valueOf("RED");
System.out.print(color); // 출력 결과: RED
//2.
Color color = Color.RED;
System.out.println(color); // 출력 결과: RED
두가지 방법 모두 'enum' 상수를 얻는 방법이다.
차이점
1. Color.RED
- 컴파일 시점에서 이미 알려진 enum 상수에 접근하는 방법
- 코드를 작성하는동안 어떤 enum 상수를 사용할 것인지 미리 알고 있을때 사용
2.Color.valueOf()
- valueOf() 메서드는 주어진 문자열과 일치하는 enum 상수를 반환
- 런타임 시점에 문자열을 이용하여 enum 상수를 동적으로 결정해야할때 사용
- 사용자 입력을 처리하거나 외부 데이터와 상호작용하는 경우 유용하다.
public void selectColor(String choose) {
Color color = Color.valueOf(choose);
testService.saveColor(color); }
간단하게 이런식 이라 이해하면 될듯!
정리
Color.RED는 컴파일 시점에 정확히 어떤 enum 상수를 사용할 것인지 알고 있을 때 사용하고,
Color.valueOf()는 런타임에 문자열 값을 이용하여 enum 상수를 동적으로 가져올 때 사용
재밌땅
'Java 이론정리' 카테고리의 다른 글
toString은 왜 @Override 어노테이션을 사용하지 않아도 될까? (1) | 2023.10.10 |
---|---|
정적 팩토리 메소드 (0) | 2023.10.05 |
자바의 기본 (0) | 2022.03.10 |
자바 8의 새로운 기능 (0) | 2022.01.27 |
GUI (0) | 2022.01.27 |