JAVA: Optional 클래스
Optional 클래스
java.util.Optional<T> 클래스
사용 이유
Optional 객체는 NullPointerException 예외를 제공하는 메서드를 가지고 있다.
따라서 복잡한 조건문 없이도 null값으로 인해 발생하는 예외를 처리할 수 있다.
Optional 객체 생성
1. Optional.ofNullable
value가 null인 경우 NPE 예외를 던진다.
반드시 값이 있어야 하는 객체인 경우 ofNullable() 메서드를 사용한다.
Optional<String> opt1 = Optional.ofNullable("자바 객체1");
2. Optional.of
value가 null인 경우 비어있는 Optional 객체를 반환한다.
값이 null일 수도 있는 객체인 경우 of() 메서드를 사용한다.
Optional<String> opt2 = Optional.of("자바 객체2"):
3. Optional.empty
비어있는 Optional 객체를 생성한다.
조건에 따라 분기를 태워야 하고 반환할 값이 없는 객체인 경우 empty() 메서드를 사용한다.
Optional<String> opt3 = Optional.empty();
Optional 객체 접근
1. Optional 객체의 값이 null인 경우 isPresent() & get()
get() 메서드를 사용하면 Optional 객체에 저장된 값에 접근할 수 있다.
만약 Optional 객체에 저장된 값이 null이면, NosuchElementException 예외가 발생하므로 get() 메서드를 호출하기 전에 isPresent() 메서드를 사용하며 Optional 객체에 저장된 값의 null 여부를 확인해야 한다.
if(opt1.isPresent()) {
System.out.println(opt1.get());
}
// 실행 결과: 자바 객체1
2. null 대신 대체할 값 지정: orElse~
1. orElse()
저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 값을 반환한다.
System.out.println(opt3.orElse("빈 Optional 객체"));
2. orElseGet()
저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 람다 표현식의 결괏값을 반환한다.
System.out.println(opt3.orElseGet(String::new));
2. orElseThrow()
저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 예외를 발생시킨다.
Author And Source
이 문제에 관하여(JAVA: Optional 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@im-shung/JAVA-Optional-클래스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)