1. 개요
- 목적:
값이 있을 수도, 없을 수도 있는 경우를 안전하게 처리
- 대상:
null
처리 및 오류 예방2. 주요 특징
- 값 존재 여부:
값이 있을 수도, 없을 수도 있음
null
직접 다루지 않음:
Optional
을 통해 null
을 명시적으로 처리하지 않음- 안전한 값 처리:
NullPointerException
예방3. 주요 메소드
of()
- 값이 존재할 때 사용
- 예:
Optional.of("value")
ofNullable()
- 값이
null
일 수도 있을 때 사용 - 예:
Optional.ofNullable(value)
empty()
- 값이 없을 때 사용
- 예:
Optional.empty()
isPresent()
- 값이 존재하는지 확인
- 예:
optionalValue.isPresent()
ifPresent()
- 값이 있을 때 람다 함수 실행
- 예:
optionalValue.ifPresent(value -> System.out.println(value))
get()
- 값 반환 (없으면 예외 발생)
- 예:
optionalValue.get()
orElse()
- 값 없으면 기본값 반환
- 예:
optionalValue.orElse("default")
orElseGet()
- 값 없으면 공급자 함수로 기본값 생성
- 예:
optionalValue.orElseGet(() -> "generated")
orElseThrow()
- 값 없으면 예외 던짐
- 예:
optionalValue.orElseThrow(() -> new RuntimeException("Error"))
4. 예시 코드
public class App {
public static void main(String[] args) {
String data1 = null;
Optional<String> op1 = Optional.ofNullable(data1);
// .isPresent() >> 안에 값이 존재하면 true
if (op1.isPresent()) {
String r1 = op1.get();
System.out.println("r1: " + r1);
}
String data2 = null;
//
String r2 = Optional.ofNullable(data2).orElseGet(() -> "없음");
System.out.println("r2: " + r2);
String data3 = "대충 아무 값";
// null이면 예외 던지기
String r3 = Optional.ofNullable(data3).orElseThrow(() -> new RuntimeException("값이 없음, 확인 바람"));
System.out.println("r3: " + r3);
}
}
Share article