Stream API チェーンの外にある変換処理で、チェーンの中に組み入れ可能なものを検出します。

例:


  List<String> list = stream.collect(Collectors.toList());
  list.sort(null);
  return list.toArray(new String[list.size()]);

変換後:


  return stream.sorted().toArray(String[]::new);

変換後の Stream チェーンでは、明示的な ArrayListCollectors.toList() に、あるいは明示的な HashSetCollectors.toSet() に置換されている場合があるため、注意が必要です。 現在のライブラリ実装では、これらのコレクションを内部的に使用しています。 ただし、この手法はあまり信頼性が高くないため、将来的にはコードのセマンティクスを変更する可能性があります。

不安な場合は、'toList()' または 'toSet()' コレクターを提案しない オプションを使用して、toList および toSet コレクターではなく、Collectors.toCollection() を提案させるようにしてください。