가능하면 "Stream" 체이닝은 간단하게 표현되어야 합니다

 

Stream API를 사용할 때, 콜 체인은 가능한 한 단순화되어야 합니다. 그렇게 하는 것이 코드를 읽기 쉽게 만들고 불필요한 임시 객체를 만들지 않습니다.

이 방법은 아래와 같은 경우에서 대체할 수 있는 방법이 있을 때 알림을 울립니다.

Original Preferred
stream.filter(predicate).findFirst().isPresent() stream.anyMatch(predicate)
stream.filter(predicate).findAny().isPresent() stream.anyMatch(predicate)
!stream.anyMatch(predicate) stream.noneMatch(predicate)
!stream.anyMatch(x -> !(…)) stream.allMatch(…)
stream.map(mapper).anyMatch(Boolean::booleanValue) stream.anyMatch(predicate)

규칙을 어긴 코드

boolean hasRed = widgets.stream().filter(w -> w.getColor() == RED).findFirst().isPresent(); // 규칙을 어긴 코드

규칙을 준수한 해결책

boolean hasRed = widgets.stream().anyMatch(w -> w.getColor() == RED);

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project