NullPointerException(NPE)
자바 개발자들은 한번씩 본 Exception 일겁니다.
null 객체에서 메서드를 호출하거나 객체필드에 접근하거나 throw 하는 등의 상황에서 발생합니다.
보통 해당 Exception은 사용 전 if 문을 통해 null인지 검사 한번 하게되면 해결할 수 있는 문제인데요.
하지만 매번 if 문을 통해 확인을 해야하기 때문에 가독성이 좋지않아 Java8 부터는 Optional 을 지원해줍니다.
Optional
Optional<T> 은 null이 올 수 있는 값을 감싸는 Wrapper 클래스로 참조하더라도 NPE가 발생하지 않습니다.
또한 위와같이 value 라는 변수에 값을 저장하기 때문에 값이 null이더라도 NPE가 발생하지 않습니다.
초기화
Optional 클래스 또한 무언가 담아둬야하는 클래스이기 때문에 초기화과정이 있는데요.
1. Null을 담아야할 때 : 어떠한 데이터가 null 인경우 사용합니다.
2. Null이 절대 아닐 때 : 어떠한 데이터가 절대 null이 아닐 때 사용합니다. null이 담길경우 NPE가 발생합니다.
3. Null인지 아닌지 모를 때 : 어떠한 데이터가 null인지 아닌지 모를경우 사용합니다. 이후에 orElse 또는 orElseGet 메소드를 사용해서 값이 null인 경우라도 NPE가 발생하지 않게 값을 가져올 수 있습니다.
'Java' 카테고리의 다른 글
[Java] 멀티스레드와 동시성 (0) | 2024.09.14 |
---|---|
[Java] 자바의 Compiler (1) | 2024.09.08 |
[Java] Wrapper (0) | 2023.03.15 |
[Java] 메모리 영역과 Garbage Collection (0) | 2023.03.14 |
[Java] JRE, JDK, JVM (0) | 2023.03.14 |