JAVA
Optional 클래스
MINNI_
2021. 8. 4. 02:22
1. java.util.Option<T> 클래스
- 정의
- T 타입의 객체를 포장해주는 래퍼 클래스(Wrapper class) ⇒ Optional 인스턴스는 모든 타입의 참조변수 저장 가능
- NullPointerException 예외 처리 가능
2. Optional 객체의 생성
- of() 메소드
- null이 아닌 명시된 값을 가지는 Optional 객체 반환
- Option 객체에 null값 저장 → NullPointerException 예외 발생 - ofNullable() 메소드
- 명시된 값이 null이 아니면 명시된 값을 가지는 Optional 객체 반환
- 명시된 값 null → 비어있는 Optional 객체 반환
Optional<String> opt = Optional.ofNullable("자바 Optional 객체");
System.out.println(opt.get());
## 실행 결과 ##
자바 Optional 객체
3. Optional 객체의 접근
- get() 메소드
- Optional 객체값 null → NoSuchElementException 예외 발생 - 해결법 1 : null값 확인 후 호출
1) isPresent() → get()
- isPresent() 메소드로Optional 객체에 저장된 값이 null인지 아닌지를 확인한 후 get() 메소드 호출
Optinal<String> opt = Optional.ofNullable("자바 Optional 객체");
if(opt.isPresent()){
System.out.println(opt.get());
}
## 실행 결과 ##
자바 Optional 객체
- 해결법 2 : null 대신에 대체할 값 지정
1) orElse() : 저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 값을 반환
2) orElseGet() : 저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 람다 표현식의 결괏값을 반환
3) orElseThrow() : 저장된 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 인수로 전달된 예외를 발생
Optional<String> opt = Optional.empty(); // Optional를 null로 초기화함.
System.out.println(opt.orElse("빈 Optional 객체"));
## 실행 결과 ##
빈 Optional 객체
4. Optional 메소드
[ 출처 ]
http://tcpschool.com/java/java_stream_optional
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com