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()
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 |
댓글