[Java] Optional 클래스

이다혜·2023년 11월 7일
0

Java

목록 보기
18/23
post-thumbnail

Optional

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

Optional 객체 생성

of() : null이 아닌 명시괸 값을 가지는 Optional 객체 반환
of() 메서드로 생성된 객체에 null이 저장되면 NullPointerException 발생

ofNullable() : 명시된 값이 null이 아니면 명시된 값을 가지는 객체를 반환하고, null이면 비어있는 Optional 객체 반환

따라서 만약 참조 변수의 값이 만에 하나 null이 될 가능성이 있다면, ofNullable() 메소드를 사용하여 Optional 객체를 생성하는 것이 좋다.

Optional<String> opt = Optional.ofNullable("자바 Optional 객체");

System.out.println(opt.get()); // "자바 Optional 객체" 출력

 

Optional 객체에 접근

get() 메소드를 사용

만약 Optional 객체에 저장된 값이 null이면, NoSuchElementException 예외가 발생

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

Optional<String> opt = Optional.ofNullable("자바 Optional 객체");

if(opt.isPresent()) {
    System.out.println(opt.get());
}

orElse() : 저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 값을 반환한다.

Optional<String> opt = Optional.empty(); // Optional를 null로 초기화함.

System.out.println(opt.orElse("빈 Optional 객체"));

0개의 댓글