🌱 오늘의 주제 : Optional<T>
🌱 Optional<T>
- Optional<T>는 T타입의 객체를 감싸는 래퍼 클래스이다. 그래서 Optional타입의 객체에는 모든 타입의 객체를 담을 수 있다.
- Optional<T>를 이용하면, null 체커를 위한 if문 없이도 NullPointerException이 발생하지 않는 보다 간결하고 안전한 코드를 작성하는 것이 가능하다.
public final class Optional<T> {
private final T value; // T타입의 참조변수
}
🌱 Optional<T> 객체 생성하기
- Optional 객체를 생성할 때는 of() 또는 ofNullable()을 사용한다.
- 참조변수 값이 null일 가능성이 있으면, of()대신, ofNullable()을 사용해야 한다.
- 참조변수를 기본값으로 초기화 할 때는 empty()를 사용한다.
Optional<String> optVal = Optional.of(str);
Optional<String> optVal = Optional.ofNullable(null); //OK
Optional<String> optVal = Optional.<String>empty(); // 빈 객체로 초기화
🌱 Optional<T> 객체의 값 가져오기
- Optional 객체에 저장된 값을 가져올 때는 get()을 사용한다.
- 값이 null일 때는 orElse()로 대체할 값을 지정할 수 있다.
String str1 = optVal.get(); // 저장된 값 반환
String str2 = optVal.orElse(""); // optVal에 저장된 값이 null일 때는 ""반환
🌱OptionalInt, OptionalLong, OptionalDouble
- 기본형 스트림의 최종 연산의 일부는 Optional 대신 기본형을 값으로 하는 OptionalInt, OptionalLong, OptionalDouble을 반환한다.
'Java' 카테고리의 다른 글
Java - 스트림(collect(), 스트림의 그룹화와 분할 (0) | 2023.04.05 |
---|---|
Java - 스트림의 최종연산 (0) | 2023.04.04 |
Java - 스트림의 특징과 스트림의 중간연산 (0) | 2023.03.30 |
Java - 람다식 (0) | 2023.03.27 |
Java - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); (0) | 2023.03.23 |