Java 이론정리

Java.lang.Enum.valueOf() Method

ClapJeans 2023. 10. 5. 16:50

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