ㅇ Optinal 이란?

- 값이 있을 수도, 없을 수도 있는 객체이다. 

- 원소를 최대 1개 가질 수 있는 불변 Collection 이다.

- null 에 대한 처리를 안전하게 할 수 있게 해준다.

 

 * Optional 을 리턴하는 메서드에서는 null을 리턴해서는 안된다. ( Optional 취지와 맞지 않기 때문이다. )

 

 

 

ㅇ 왜 Optional 을 사용하는가?

 : 검사 예외와 취지가 비슷하다. 즉 반환값이 있을 수도 있고, 없을 수도 있음을 API 사용자에게 명확히 알려준다.

 

만약 기존 로직처럼 사용하여 비검사 예외를 던지거나 null 을 반환하는 경우

 => 사용자가 그 사실을 인지못해 런타임에서 예상치 못한 장애로 발전할 수 있음

 

검사 예외 ( checked Exception ) 을 던지는 경우

 => 사용자 코드에서는 try-catch 구문을 통해 예외처리하는 로직을 추가해야하는데,

      비슷하게 메서드가 Optional 을 반환한다면 클라이언트는 값을 받지 못했을 때의 취할 행동을 선택해야한다.

 

 

 

 

 

ㅇ Optinal 기본값을 설정하는 방법

String lastWord = max(words).orElse("단어 없음..");

 : 값을 받지 못했을 때에 단어 없음이라는 행동이 선택된다.

 

 

 

 

 

 

ㅇ Optional 메서드

 

1) Optional.empty()

 - 내부 값이 비어있는 Optional 객체 반환

 

2) Optional.of(T value)

 - 내부 값이 value 인 Optional 객체 반환

 - 만약 value가 null인 경우 NPE 발생 ( NullPointerException )

 

3) Optional.ofNullable(T value)

 - 가장 자주 쓰이는 Optional 생성 방법

 - value 가 null 이면, empty Optional 을 반환하고 값이 있으면 Optional.of 로 생성한다.

 

 

 

 

 

'JAVA' 카테고리의 다른 글

String 중간 공백기준으로 배열 만들기  (0) 2022.07.06
Hamcrest, Matcher란?  (0) 2022.07.03
상속을 응용한 스택 구현  (0) 2021.10.07
배열 큐  (0) 2021.10.07
Stack  (0) 2021.10.06

+ Recent posts