All About Develop/공부하자

자바 Opatoinal<T>

lxexjx 2022. 11. 12. 16:15

[Opatoinal<T>]

 

T타입 객체의 래퍼클래스  Opatoinal<T> 어떤 타입이던 지정 가능(모든 종류의 객체, null 저장 가능)

 

1) null을 직접 다루는 것은 위험해서 null을 간접적으로 다루기(NullPointException).

2) nulll 체크 (if문 필수 )

 

null을 Optional객체에 넣어서 담긴 값이 null인 거지 주소는 존재.

 

                  □                      □    0x100  

result        0x100      →     null

null을 직접 다루는게 아닌 optional객체 안에 넣으면 결과가 널이더라도 result의 결과는 항상 null이 아님(주소 존재).

 

∴  NullPointException가 발생하지 않고 코드가 간결해짐

 

 

 

 

[Optional객체 생성]

 

String str = "abc";

Optional<String> opt = Optionale.of(str);

Optional<String> opt = Optionale.of(str);

 

str 0x100     →  "abc" (0x100)

opt 0x200   → Optional 객체 :  0x100  →  "abc"

 

 

null초기화는 

Optional<String> opt = null이 아니라 Optional.<String> empty();로 빈객체 초기화.

 

 

[Optional객체 값 가져오기]

opt.get()  - null이면 예외발생

opt.orElse()  - null일때 빈문자 ""반환

opt.orElseGet()  -  라다식 사용가능

opt.orElseThrow()   -   널이면 예외발생

 

isPresent()  -  Optionale객체의 값이 null이면 false

 

str = opt.orElse("");

'All About Develop > 공부하자' 카테고리의 다른 글

맥1 Git 설치  (0) 2023.03.10
자바8  (0) 2022.10.26
Web Server/WAS/jetty/Tomcat  (0) 2022.08.26
스프링 버전 정리  (0) 2022.08.04
자바 버전 정리  (0) 2022.08.04