count() 呼び出し直前の map() または boxed() などの冗長な Stream API 呼び出しを報告します。

このような呼び出しは最終カウントを変更しないため、除去できます。 コードがこのような map 呼び出し内のラムダによる副作用に依存している可能性があります。 ただし、stream チェーン内の副作用に依存するのは非常に悪いやり方です。 この呼び出しが今後の Java バージョンで最適化されないという保証はありません。

例:


  // map() の呼び出しは冗長です
  long count = list.stream().filter(s -> !s.isEmpty()).map(s -> s.trim()).count();

2024.1 の新機能です