Optional<T>란 무엇일까

Optional은 NULL이 될 수 있는 객체를 감싸는 Wrapper 클래스이다


Optional를 사용하는 이유

NPE를 방지하기 위해서

NPE(NullPointerException)란?

실제값이 아닌 NULL을 가지고 있는 객체를 호출할 때 발생하는 예외이다.

Optional.of()

null값을 받지 않는다
Optional<String> val = Optional.of(null) // NPE 발생

Optional.ofNullable()

참조변수의 값이 null일 가능성이 있을 때
Option<String> val = Optional.ofNullable(null) // OK

Optional.get() && Optional.orElse()

Optional<String> optVal = Optional.of("ABC");
String str1 = optVal.get(); //optVal에 저장된 값을 반환. null이면 예외 발생
String str2 = optVal.orElse(""); //optVal에 저장된 값이 null일 때는 ""를 반환

Optional.ifPresent()

Optional 객체가 값을 가지고 있다면 true, 값이 없다면 false 리턴

profile
Backend Developer

0개의 댓글