개발일지/Java

Java Optional<T>

E-room 2022. 9. 24. 12:57
728x90
모든 타입의 객체를 담을 수 있는 Wrapper 클래스

Optional

NullPointerException(NPE : null 값으로 인해 에러가 발생하는 현상)을 객체 차원에서 효율적으로 방지하고자 도입

public final class Optional<T> {
    private final T value; // T타입의 참조변수
}

 

of(), ofNullable()

Optional<String> opt1 = Optional.ofNullable(null); // null일 가능성이 있다면 사용
Optional<String> opt2 = Optional.ofNullable("123");
System.out.println(opt1.isPresent()); //Optional 객체의 값이 null인지 여부를 리턴
System.out.println(opt2.isPresent());

 

empty() 참조 변수를 기본값으로 초기화

Optional<String> opt3 = Optional.<String>empty();

 

get() 값을 가져올 때

Optional<String> optString = Optional.of("e-room");
System.out.println(optString); // Optional[e-room]
System.out.println(optString.get()); // e-room

// 참조변수의 값이 null일 가능성이 있다면, orElse()메서드로 디폴트값 설정 가능
String nullName = null;
String name = Optional.ofNullable(nullName).orElse("e-room");
System.out.println(name); // e-room
728x90