728x90
T 타입 객체의 Wrapper 클래스
null을 포함한 모든 종류의 객체를 저장하기 때문에 null을 간접적으로 다룰 수 있음
NullPorinterException 발생을 예방할 수 있음
null 대신 빈 Optional<T> 객체를 사용하는 것이 좋음
public final class Optional<T> {
private final T value;
// null을 포함한 모든 종류의 객체를 저장가능
}
Optional<T> 객체 생성
Optional<String> optVal = Optional.empty(); // 빈 객체로 초기화
Optional<String> optVal - Optional.of(str);
Optional<String> optVal - Optional.of("abc");
Optional<String> optVal - Optional.of(null); // 오류. 불가능
Optional<String> optVal - Optional.ofNullable(null); // 가능
Optional<T> 객체 값 가져오기
String str = optVal.get(); // null이면 예외가 발생하여 잘 사용하지 않음
String str = optVal.orElse(""); // 저장된 값이 null이면 ""반환. 많이 사용
String str = optVal.orElseGet(람다식,메소드참조); // 많이 사용
String str = optVal.or.ElseThrow(NullPointerException::new); // null이면 예외 발생
isPresent() // Optional 객체의 값이 null이면 false, 아니면 true
ifPresent(작업) // null이 아닐 때만 작업 수행, null이면 아무 일도 안함
'Java > Notion' 카테고리의 다른 글
자바의 컴파일 과정 (0) | 2023.10.25 |
---|---|
BigInteger (0) | 2023.05.08 |
Stream (1) | 2023.05.03 |
Lambda (0) | 2023.05.03 |
Thread (0) | 2023.05.02 |