user1178830 :
나는 널 (null)이 될 수있다 '블록'의 목록을 가지고있다. 각 블록은 null이 될 수있는 이름의 목록이 포함되어 있습니다. 나는 모든 블록에있는 이름 중 하나가 단어 "선전"이 경우 찾기 위해 노력하고있어.
나는 작업을 수행하는 다음과 같은 코드가 있습니다 :
private boolean containsText(List<Blocks> blocks) {
return Optional.ofNullable(blocks)
.map(Collection::stream)
.map(o -> o.map(Blocks::getNames))
.map(e -> e.anyMatch(names -> names != null && names.contains("blurb")))
.orElse(false);
}
getNames가 null을 반환 할 수 있기 때문에 그러나 나는 다음 명령문에서 확인해야합니다. 나는 그 시점에서 다른 선택 사항에서 포장 할 수 있지만 그때는 끝낼 것 Optional<Stream<Optional<List<String>>>>
사용은 names -> names != null
청소기를 보인다? 또는이를 단순화하는 방법은 무엇입니까?
또한 :
를 사용하지 않고 또 다른 간단한 변형 Optional
겠습니까 단지 수 :
private boolean containsText(List<Blocks> blocks) {
return blocks != null && blocks.stream()
.map(Blocks::getNames)
.filter(Objects::nonNull)
.anyMatch(list -> list.contains("blurb"));
}
참고 : 문제 중 하나는 당신이 말하는 디자인이다, "나는 널 (null)이 될 수있다 '블록'의 목록이" 의 제거, 당신은 다음과 같은 표현을 위해 빈 목록을 반환하고 그것을 수정해야을 null
위 체크인 암호.