개발/Java
자바의 정석 - 기초편 [Optional]
lusida0131
2022. 7. 18. 20:38
728x90
Optional<T>
T타입 객체의 래퍼 클래스 - Optional<T>
public final class Optional<T> {
private final T value; // T 타입의 참조변수
....
}
}
NullPointerException 오류의 발생이 없고 if문 코드로 null을 체크 안 해줘도 되는 장점이 있다.
Optional<T> 객체를 생성하는 다양한 방법
String str = "abc";
Optional<String> optVal = Optional.of(str);
Optional<String> optVal = Optional.of("abc");
Optional<String> optVal = Optional.of(null); // NullpointerException 발생
Optional<String> optVal = Optional.ofNullable(null); // ok
null 대신 빈 Optional<T> 객체를 사용하자
Optional<String> optVal = null; // 널로 초기화 바람직하지 않음
Optional<String> optVal = Optional.<String>empty(); // 빈 객체로 초기화
Optional 객체의 값 가져오기
Optional<String> optVal = Optional.of("abc");
String str1 = optVal.get(); // optVal에 저장된 값을 반환, null이면 예외발생
String str2 = optVal.orElse(" "); // optVal에 저장된 값이 null이면 " "반환
String str3 = optVal.orElseGet(String::new); // 람다식 사용가능
String str4 = optVal.orElseThrow(NullPointerException::new); // 널이면 예외발생
isPresent() - Optional 객체의 값이 null이면 false, 아니면 true를 반환
728x90