NULL의 문제점
1) NullPointException 발생 가능성 높음
2) if문으로 null 값을 항상 확인해야 함
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