본문 바로가기
개발/Java

java.util.Optional<T> 이란?

by 방구쟁이 2021. 12. 22.
728x90

Java 8에서 추가된 Optional<T> 클래스는 객체(T)를 감싸주는 Wrapper class이다.

 

사용 목적

객체(T)가 null이더라도 NullPointerException를 발생시키지 않고 값이 없을 때의 경우를 예외처리 할 수 있다.

 

Optional 기본 예제

Optional<String> optional = Optional.ofNullable("예외처리");

if(optional.isPresent()){
	System.out.println(optional.get()); 
}

 

Optional 활용 예제

Optional<String> optional = Optional.ofNullable(getId());
String id = optional.orElse("Default");

System.out.println(id); // getId()가 Null일 경우 "Default" 반환

 

Optional 메서드

  • Optional.empty() : null로 초기화
  • T.get() : 객체 저장된 값 반환
  • isPresent : 저장된 값 존재 여부에 따른 true or false 반환
  • Optional.of(T value) : null이 아닌 value값을 가지는 Optional 객체 반환
  • Optional.ofNullable(T value) : value가 null이면 비어있는 Optional 객체 반환, null이 아닌 value값을 가지는 Optional 객체 반환
  • T.orElse(T other) : 저장된 값이 있는지 여부에 따른 값 or 인수로 전달된 값 반환
  • T.orElseGet(람다표현식) : 저장된 값이 있는지 여부에 따른 값 or 인수로 전달된 값 람다 표현식의 결과값 반환
  • T.orElseThrow(예외) : 저장된 값 존재 여부에 따른 값 or 인수로 전달된 예외 발생

 

Optional의 기본 타입 클래스 및 저장된 값 불러오기

  • Optional : T get()
  • OptionalInt : int getAsInt()
  • OptionalLong : long getAsLong()
  • OptionalDouble : double getAsDouble()

 

 

참고 자료 : http://www.tcpschool.com/java/java_stream_optional

728x90

'개발 > Java' 카테고리의 다른 글

[다시 공부하는 Java] Stream API  (0) 2023.04.18
JAVA 성능 향상 시키기  (2) 2021.08.11
[Java] StringTokenizer란?  (0) 2021.08.02
.class와 .java 확장자  (0) 2021.07.21
JVM(Java Virtual Machine) 이란?  (2) 2021.06.24

댓글