[꼼꼼한 개발자] 꼼코더

[JAVA] - Optional이란? 간단하고 쉽게 이해하기 (Optional 객체 생성 예제) 본문

간단하고 쉽게/JAVA

[JAVA] - Optional이란? 간단하고 쉽게 이해하기 (Optional 객체 생성 예제)

꼼코더 2023. 3. 9. 00:08
반응형

📚 Optional에 대하여

Java 8부터 도입된 Optional은 값이 없는 경우를 표현하기 위한 클래스이다.

Optional 클래스는 제네릭을 사용하여 어떤 타입의 객체도 감싸서 담을 수 있다.

 

Optional 객체는 값이 존재할 수도 있고, 없을 수도 있다.

이는 NullPointerException 예외를 방지할 수 있고, 코드의 안정성을 높이며 가독성을 향상시킨다.

 

🥜 Optional 객체 생성(이론)

Optional 객체를 생성하려면, of(), ofNullable(), empty() 등의 정적 팩토리 메서드를 사용할 수 있다.

 

  • of() 메서드 : 값이 null이 아닌 경우에만 Optional 객체를 생성
  • ofNullable() 메서드 : 값이 null인 경우에도 Optional 객체를 생성.
  • empty() 메서드 : 값을 갖지 않는 빈(empty) Optional 객체를 생성.

 

🏃🏻‍♂️ Optional 객체 접근

Optional 객체에 접근하기 위해서는 get() 메서드를 사용.

하지만 이 방법은 값이 없는 경우에 예외가 발생할 수 있으므로, isPresent() 메서드를 사용하여

값이 존재하는지 여부를 먼저 확인하는 것이 좋다.

 

또한, Optional 객체에 값이 있을 경우에는

orElse()나 orElseGet() 메서드를 사용하여 대체 값을 제공할 수 있다.

 

🖇️ 다른 메서들과의 연결

Optional 객체는 다른 메서드들과 연결하여 사용할 수 있다.

예를 들어, map() 메서드를 사용하여 Optional 객체의 값을 변환하거나,

filter() 메서드를 사용하여 Optional 객체의 값을 검사할 수 있습니다.

 

👨🏻‍💻 Optional 객체 생성(실습)

import java.util.Optional;

public class OptionalExample {

    public static void main(String[] args) {
        String str = "Hello, World!"; // null이 아닌 값을 가지는 문자열 변수
        Optional<String> optionalStr = Optional.of(str); // Optional 객체 생성, 값이 null이 아니므로 of() 메서드 사용
        System.out.println(optionalStr); // 출력: Optional[Hello, World!]

        String nullStr = null; // null 값을 가지는 문자열 변수
        Optional<String> optionalNullStr = Optional.ofNullable(nullStr); // Optional 객체 생성, 값이 null이므로 ofNullable() 메서드 사용
        System.out.println(optionalNullStr); // 출력: Optional.empty

        Optional<String> emptyOptional = Optional.empty(); // 값을 갖지 않는 빈 Optional 객체 생성
        System.out.println(emptyOptional); // 출력: Optional.empty
    }

}

 

Comments