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.