본문 바로가기
Study/Back

2023.Dec.25.Mon [Java] Optional 클래스와 메서드들

by Jobsoony 2023. 12. 25.
728x90
반응형

 Optional에 대한 개념이 머릿속에 확실히 적립되지 않아 정리해보고자 한다.

 먼저 Optional 클래스는 어떤 클래스일까?

 Optional 클래스는 Java8부터 도입된 클래스로 값이 null 값인지 아닌지 분명하게 다루기 위해 사용한다. 그래서 값이 없을 수 있는 상황 해서 NullPointerException을 방지해 주어 더 안전하게 코드를 작성할 수 있게 도와준다.

 또한 값이 없을 때 기본 값을 설정하거나 다른 동작을 수행하는 유연성도 제공해 준다.

 이렇게 유용한 Optional 클래스가 제공하는 주요한 메서드들을 알아보자!

1. .of(값);
 주어진 값으로 Optional 객체를 생성해 준다.

Optional<String> optional = Optional.of("값");

2. .ofNullable(값);
 주어진 값이 null이 아니면 해당 값으로 Optional을 생성하고, null이면 빈 Optional을 반환한다.

Optional<String> optional = Optional.ofNullable(값);

3. .isPresent();
 값이 존재하는지 여부를 확인해서 존재하면 true, 아니면 false를 반환한다.

boolean isPresent = optional.isPresent();

4. ifPresent(값 ->  ); 
 값이 존재할 때 지정된 동작을 실행한다.

optional.ifPresent(값 -> System.out.println("존재하는 값: " + 값));

5. .get();
Optional에 값을 포함하고 있으면 해당 값을 반환하고 없다면 NoSuchElementException을 던진다. 때문에 이 메서드를 사용하기 전에 .isPresent()로 값의 존재여부를 먼저 확인하는 게 좋다.

String 값 = optional.get();

6. .orElse();
 값이 존재하면 해당 값을 반환하고, 값이 없으면 지정된 기본 값을 반환한다.

String result = optional.orElse("기본 값");

7. .orElseGet(() -> "기본 값");
 값이 존재하면 해당 값을 반환하고, 없으면 지정된 기본 값을 가져와 반환한다. 아래 코드에서는 "null이 될 수도 있는 값"이 null이라면 "기본 값"이 반환된다.

Optional<String> optional = Optional.ofNullable(null이 될 수도 있는 값);
String result = optional.orElseGet(() -> "기본 값");

8. .orElseThrow(() -> );
 값이 존재하면 해당 값을 반환하고, 없으면 지정된 예외를 던진다.

String result = optional.orElseThrow(() -> new IllegalStateException("값이 존재하지 않습니다."));

 

위 사항들은 초보 개발자가 머릿속에서 명확하지 않은 개념을 잡기 위해 혼자 공부하며 적은 글로 틀린 부분이 있을 수 있으므로 혹시나 맞지 않는 정보가 있을 시 가르쳐 주시면 수정하고 배우도록 하겠습니다 :)

728x90
반응형