Optional

devyumi·2023년 10월 16일
0

Java

목록 보기
3/14

NULL의 문제점

1) NullPointException 발생 가능성 높음

2) if문으로 null 값을 항상 확인해야 함


Optional

  • Null 값을 처리할 수 있도록 하는 클래스
  • Null의 문제점을 해결하기 위해 사용됨

Method

  • ofNullable(): null인 경우에도 Optional 객체 생성

  • of(): 값이 null이 아닌 경우에만 Optional 객체 생성

  • empty(): 값을 갖지 않는 빈 Optional 객체 생성

  • get(): 저장된 값 반환. null이면 예외 발생

  • orElse(""): 저장된 값 반환. null이면 "" 반환

  • isPresent(): Optional 객체의 값이 있으면 true, 없으면 false 반환

  • ifPresent(): Optional 객체의 값이 존재하면 특정 동작을 수행하도록 함

사용 예시

public Optional<Member> findById(Long id) {
	return Optional.ofNullable(store.get(id));
}

public Optional<Member> findByName(String name) {
	return store.values().stream()
			.filter(member -> member.getName().equals(name))
			.findAny();
}

List<Integer> numbers = new ArrayList<>();
for(int i = 1; i < 10; i++) {
	numbers.add(i);
}
		

Optional<Integer> result = numbers.stream().filter(i -> i > 5).findAny();
System.out.println(result.orElse(null)); //6
System.out.println(result.isPresent()); //true
result.ifPresent(m -> {
	throw new IllegalStateException("이미 존재하는 값입니다");
});


Optional<Integer> result = numbers.stream().filter(i -> i > 10).findAny();
System.out.println(result.orElse(null)); //null
System.out.println(result.isPresent()); //false

0개의 댓글

관련 채용 정보