슬픈강낭콩 2023. 1. 11. 17:50

Optional 개념

Optional<T>은 단순히 어떤 객체를 wrapper하는 객체이다. 즉 Optional은 어떤 객체를 내부에 갖고 있으며(껍데기 같은역할) get() 등의 메소드들을 제공합니다. 만약 Optional이 객체를 갖고 있지 않을 때는 null이 저장된다.

1. 값이 있거나 없는 값을 표현

2. NULL을 대체

 

Optional 사용이유

1. NPE(NullPointerException)을 체크해야하는데 코드 로직이 복잡해지기 때문에 더 간단한 Optional을 이용한다.

2. 참조하더라도 NPE가 발생하지 않도록 도와준다.

Optional.ofNullable()

객체를 갖고 있지 않은 Optional(null을 갖고 있는)을 생성하고 싶을 때 사용된다.

Optional.of(null)는 허용되지 않는다 Optional.of()는 null이 아닌 객체만 인자로 전달할 수 있어서

이럴 때는 Optional.ofNullable()을 사용하여 null을 가지고 있는 Optional을 생성할 수 있습니다.

 

if, Else문을 실행가능

ifPresent() 값이 있을때 실행

ifPresentOrElse()