Java 옵셔널 정리

최대 1 분 소요

옵셔널

자바 옵셔널은 Java 8 버전부터 도입된 기능으로 옵셔널을 사용하여 NPE(NullPointerException)을 방지할 수 있다.

옵셔널 사용이전 코드

public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

// 메인 코드
Person person = // ...
if (person != null) {
    String name = person.getName();
    if (name != null) {
        System.out.println("Person's name: " + name);
    } else {
        System.out.println("Person's name is null.");
    }
} else {
    System.out.println("Person is null.");
}

옵셔널을 사용하기 이전에는 null 인지 수동으로 확인하는 코드를 작성하여 NPE이 발생하지 않도록 노력하였다.

옵셔널 사용후 코드

public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public Optional<String> getName() {
        return Optional.ofNullable(name);
    }
}

// 메인 코드
Person person = // ...
Optional<String> optionalName = person.getName();
if (optionalName.isPresent()) {
    String name = optionalName.get();
    System.out.println("Person's name: " + name);
} else {
    System.out.println("Person is null or has no name.");
}
  • Optional.of
    • value가 null일 경우 NPE 예외 발생 반드시 값이 있어야 한다.
  • Optional.ofNullable
    • value가 null일 경우 비어있는 Optional을 반환한다. value 에 Null값이 들어갈 수 있을 경우 사용
  • Optional.empty
    • 비어있는 옵셔널 객체 생성

태그:

카테고리:

업데이트:

댓글남기기