Java Optional 클래스

가이드문구

java.util.Optional<T> 클래스

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

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

Optional 객체를 사용하면 NullpointerException 예외를 제공하는 메소드로 간단하게 회피할 수 있습니다.

if 문을 이용하거나 복잡한 조건문을 만들지 않아도 Optional 클래스에서 제공하는 메소드로 예외 처리를 할 수 있습니다.


Optional의 객체 생성 방법

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

Optional<String> opt1 = Optional.of("test");
System.out.println(opt1.get());
		 
Optional<String> opt2 = Optional.ofNullable("test");
System.out.println(opt2.get());


Optional 객체의 접근

get() 메소드를 사용하면 Optional 객체에 저장된 값에 접근할 수 있습니다.

만약 Optional 객체에 저장된 값이 null 이라면 NoSuchElementException 예외가 발생됩니다.

따라서 get() 메소드를 호출하기 전에 isPresent() 메소드를 사용하여 Optional 객체에 저장된 값이 null인지 아닌지를 먼저 확인한 후 호출하는 것이 좋습니다.


isPresent() 메소드를 이용하여 Optional 객체에 저장된 값에 접근하는 예제 입니다.

Optional<String> opt = Optional.ofNullable("Optional 객체");
if(opt.isPresent()){ // null 체크
    System.out.println(opt.get());
}


Optional 메소드에서 null 대신 대체할 값을 지정할 수 있습니다.

Optional<String> opt = Optional.empty(); // Optional 객체를 초기화
System.out.println(opt.orElse("빈객체");
System.out.println(opt.orElseGet(String::new);


작성자 소개
초이 프로필
WrapUp 블로거

초이

반려견을 좋아하고, 차를 좋아하고, 여행을 좋아하고, 맛집을 찾아 즐기는 웹 개발자 입니다^^