Java/Java 이론

Optional 클래스

2주녘 2023. 9. 27. 10:31
반응형

Optional<T> 클래스는 Integer나 Double 클래스처럼 'T'타입의 객체를 포장해 주는 래퍼 클래스(Wrapper class)입니다.

따라서 Optional 인스턴스는 모든 타입의 참조 변수를 저장할 수 있습니다.

 

Optional 객체를 사용하면 예상치 못한 NullPointerException 예외를 제공되는 메소드로 간단히 회피할 수 있습니다.

즉, 복잡한 조건문 없이도 널(null) 값으로 인해 발생하는 예외를 처리할 수 있게 됩니다.

 

Optional 객체의 생성

of() 메소드나 ofNullable() 메소드를 사용하여 Optional 객체를 생성할 수 있습니다.

 

public class OptionalApplication {
    public static void main(String[] args) {
//        TODO : Optional 객체
//         사용법 : Optional.of(값) : Optional 객체에 들어감
//        String str = "abcde";
        Optional<String> optional = Optional.of("abcde");

//        TODO : 가져오기(꺼내기) : 옵셔널객체변수.get()
        System.out.println(optional.get()); // abcde 출력

//        TODO : 정수 넣기
        Optional<Integer> optional2 = Optional.of(0);

//        TODO : 빈것 넣기
        Optional<Object> optional3 = Optional.empty(); // 빈 것

//        TODO : 현재 옵셔널 객체에 값이 있는지 확인 : isPresent() : 있으면 true / 없으면 false
        System.out.println(optional2.isPresent());  // true
        System.out.println(optional3.isPresent());  // false

//        TODO : 빈 것 또는 null 일 경우 아래와 같이 코딩
//          옵셔널객체변수.orElse("대체할 문자열");
        System.out.println(optional3.orElse("없음")); // null 일 경우 없음으로 출력


    }
}
반응형