。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

프로젝트/새로이

Optional

quarrrter 2023. 12. 4. 16:55

Optional은 Java 8에서 도입된 클래스로, 값이 존재할 수도 있고 없을 수도 있는 컨테이너. 

주로 NullPointerException을 방지하고자 할 때 사용

 

=>  null인지 아닌지, 안전하게 판단하고 싶어서. 검증을 확실하게 하고 싶을 때.

권장 사용방법: getter에서만 쓰고, 비지니스로직에서는 나오지 않는게 맞음.

 

optional (한개의 객체)

== null 이 절대 성립이 안 함 : jpa에서는 절대 적용 안 됨. nullpointexception 발생하고 싶어도 발생을 못 함.

 

 

 

 

 

ofNullable() 메서드:

  • Optional.ofNullable(T value) 메서드는 주어진 값이 null이 아니면 해당 값을 가지는 Optional 객체를 생성하고, 값이 null이면 빈 Optional을 생성합니다.
String value = "Hello";
Optional<String> optionalValue = Optional.ofNullable(value);

 

 

orElse() 메서드:

  • orElse(T other) 메서드는 값이 존재하면 그 값을 반환하고, 값이 없으면 인자로 전달된 기본값을 반환합니다.
String value = null;
String result = Optional.ofNullable(value).orElse("Default");

 

 

orElseThrow() 메서드:

  • orElseThrow(Supplier<? extends X> exceptionSupplier) 메서드는 값이 존재하면 그 값을 반환하고, 값이 없으면 인자로 전달된 예외를 발생시킵니다.
String value = null;
String result = Optional.ofNullable(value).orElseThrow(() -> new NoSuchElementException("Value is not present"));

 

 

ifPresent() 메서드:

  • ifPresent(Consumer<? super T> consumer) 메서드는 값이 존재하면 해당 값을 소비하는데 사용됩니다. 값이 존재할 때만 특정 동작을 수행하고자 할 때 유용합니다.
String value = "Hello";
Optional.ofNullable(value).ifPresent(v -> System.out.println("Value is present: " + v));

 

 


  • 파라미터에서 optional 을 받으면 안 되는 이유
    • 널에서 안전하게 작업하자는 건데 이러면 안됨.

'프로젝트 > 새로이' 카테고리의 다른 글

Managed Language / Unmanaged Language  (0) 2023.12.07
RuntimeException / IllegalArgumentException  (1) 2023.12.07
트랜젝션  (2) 2023.12.04
Stream  (3) 2023.12.04