* Optional<T>
- T 타입 객체의 래퍼클래스
public final class Optional<T>{
private final T value; // T타입의 참조변수
...
}
래퍼클래스 : Integer, Long 같이 그 타입을 가지고 있는 클래스
Optional 은 모든 종류의 객체 저장 가능!
null도 저장할 수 있음. NullpointException 방지 가능, null 체크 시 if문 사용해 지저분해지는 것 방지
- 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);
- null 대신 빈 Optional<T> 객체를 사용하자.
Optional<String> optVal = Optional.empty(); // 빈 객체로 초기화
- Optional<T> 객체의 값 가져오기 - get(), orElse(), orElseGet(), orElseThrow()
Optional<String> optVal = Optional.of("abd");
String str1 = optVal.get(); // null 이면 예외 발생
String str1 = optVal.orElse(""); // null 이면 "" 반환
String str1 = optVal.orElseGet(String::new); // 람다식 사용 가능
String str1 = optVal.orElseThrow(NullPointerException::new); // 널이면 예외 발생
- isPresent() : Optional 객체의 값이 null이면 false, 아니면 true 반환
'코딩 > JAVA 공부' 카테고리의 다른 글
| [객체지향] 의존성을 이용해 설계 진화시키기 (0) | 2022.12.03 |
|---|---|
| [JAVA] 자바의 정석 _ 스트림(Stream) (0) | 2022.10.29 |
| [JAVA] 자바의 정석 _ java.util.function 패키지 (0) | 2022.10.28 |
| [JAVA] 자바의 정석 _ 람다식/ 함수형 인터페이스/ 메서드 참조 (0) | 2022.10.24 |
| [JAVA] 자바의 정석 _ 쓰레드 (0) | 2022.10.20 |