상세 컨텐츠

본문 제목

[Stream] Optional 클래스

기록 - 프로그래밍/Java

by wjjun 2020. 7. 23. 07:34

본문

Optional 클래스

java.util 패키지에 포함되어 있습니다.

Optional는 T 객체를 저장하는 컨테이너 객체 입니다.

Optional 객체는 값이 없거나 null 인 값에 대한 컨테이너 유형입니다.


Optional 사용의 장점

객체를 사용할 때 null 값이 존재하여 NullPointException이 발생할 수 있습니다.

Optional을 사용하면 객체를 직접 반환하지 않고 Optional에 wrapping 된 객체를 반환합니다.

직접 객체를 반환하지 않기 때문에 Optional에 wrapping된 상태로 다양하게 활용할 수 있습니다.


Optional 생성 방법

1. empty()

empty 메서드를 사용하여 값이 null 인 Optional 객체를 생성할 수 있습니다.

@Test
public void createOptionalUsingEmptyMethod(){
  Optional<Employee> employee = Optional.empty();
}

2. of()

null이 아닌 값을 포함하는 Optional 객체를 생성합니다.

of 메서드를 사용하면 객체 생성 시 값이 null이 아닌 값을 포함하는 Optional 객체를 생성하므로 Null Exception이 발생하지 않습니다.

  • 일반적인 경우(Optional 사용하지 않은 경우) 객체를 생성할 때 property 접근 시점에 Null 이 존재하면 NullPointException이 발생합니다.
@Test
public void createOptionalUsingOfMethod(){
  Employee employee = new Employee();
  Optional<Employee> optional = Optional.of(employee);
}

3. ofNullable()

Optional 객체를 생성하는 시점에 null 값이 존재하는지 확실하지 않은 경우에 사용합니다.

null이 아니면 값을 반환하고 null 인 경우 null 값을 저장한 Optional 객체를 생성합니다.

@Test
public void createOptionalUsingOfNullableMethod(){
  Employee employee = new Employee();
  Optional<Employee> optional = Optional.ofNullable(employee);
}

'기록 - 프로그래밍 > Java' 카테고리의 다른 글

[Stream] Match method  (0) 2020.07.28
[Stream] slice method  (0) 2020.07.27
[Stream] Method references  (0) 2020.07.22
[Stream] map() flatMap()  (0) 2020.07.20
Generic 장점과 특징  (0) 2020.06.28

관련글 더보기

댓글 영역