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

+ Recent posts