728x90
Optional을 남용하면 오히려 성능이 저하된다.
1. Optional.get() 호출 전에 Optional 객체가 값을 가지고 있음을 확신
만약 빈 Optional 객체에 get()메소드를 호출한 경우 NosuchElementException이 발생
→ isPresent()로 비어있진 않은지 먼저 확인하자
2. 값이 없는 경우, Optional.orElseGet()을 통해 이를 나타내는 객체를 제공할 것
orElse는 객체가 있는 경우에도 파라미터로 전달된 값이 실행되므로 orElseGet으로 객체가 없을 경우에만 실행되도록 하자
3. 값이 없는 경우, Optional.orElseThrow() 를 통해 명시적으로 예외를 던질 것
값이 없는 경우, 기본 값을 반환하는 대신 예외를 던져야하는 경우도 있다. 이 경우에는 Optional.orElseThrow()를 사용하자.
자바10 부터는 orElseThrow()의 인수 없이도 사용 가능. 인수 없이 사용하면 NoSuchElementException이 터짐.
Member member = findById(1).orElseThrow(() -> new NoSuchElementException("Member Not Found"));
//출처: https://dev-coco.tistory.com/178 [슬기로운 개발생활:티스토리]
참고자료
728x90
'언어 > JAVA' 카테고리의 다른 글
[JAVA] EOF 사용법 (0) | 2024.04.10 |
---|---|
Optional<T> 왜 사용하나 (0) | 2024.03.30 |
[JAVA] 예외 (0) | 2023.10.05 |