안녕하세요, Java 개발자 여러분,
in advance
JDK8이 아직 출시되지 않았기 때문에 주제가 약간 다를 수 있다는 것을 알고 있지만 (지금은 아닙니다.) Lambda 표현식에 대한 기사, 특히 Stream으로 알려진 새로운 컬렉션 API와 관련된 부분을 읽고있었습니다.
다음은 Java Magazine 기사에 제공된 예입니다 (수달 개체 수 알고리즘입니다 ..).
Set<Otter> otters = getOtters();
System.out.println(otters.stream()
.filter(o -> !o.isWild())
.map(o -> o.getKeeper())
.filter(k -> k.isFemale())
.into(new ArrayList<>())
.size());
내 질문은 Set 내부 반복 중간에 수달 중 하나가 null이면 어떻게됩니까?
NullPointerException이 발생할 것으로 예상하지만 이전 개발 패러다임 (비 기능적)에 여전히 갇혀있을 수 있습니다. 누군가이 문제를 어떻게 처리해야하는지 알려줄 수 있습니까?
이것이 정말로 NullPointerException을 던진다면,이 기능이 매우 위험하다고 생각하고 아래와 같이 만 사용해야합니다.
- 개발자가 null 값이 없는지 확인합니다 (이전 .filter (o-> o! = null) 사용).
- 개발자는 응용 프로그램이 처리 할 NullOtter 또는 특수 NullOtter 개체를 생성하지 않도록합니다.
가장 좋은 옵션 또는 다른 옵션은 무엇입니까?
감사!