Java ではメソッドをパラメータとして渡すことができないため、Java で Python のようなリスト内包を実装するにはどのようなトリックを使用すればよいのでしょうか?
文字列のリスト (ArrayList) があります。関数を使用して各要素を変換し、別のリストを取得する必要があります。文字列を入力として受け取り、別の文字列を出力として返す関数がいくつかあります。リストと関数をパラメーターとして渡して、各要素が処理されたリストを取得できる汎用メソッドを作成するにはどうすればよいでしょうか。文字通りには不可能ですが、どのようなトリックを使用すればよいでしょうか。
もう 1 つのオプションは、リスト全体を単純にループする小さな文字列処理関数ごとに新しい関数を作成することですが、これはあまりクールではありません。
ベストアンサー1
Java 8 ではメソッド参照を使用できます。
List<String> list = ...;
list.replaceAll(String::toUpperCase);
または、新しいリスト インスタンスを作成する場合:
List<String> upper = list.stream().map(String::toUpperCase).collect(Collectors.toList());