ホームページ > Java > &#&チュートリアル > Java で関数をパラメータとして渡すにはどうすればよいですか?

Java で関数をパラメータとして渡すにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-16 03:58:10
オリジナル
641 人が閲覧しました

How Can I Pass Functions as Parameters in Java?

Java のパラメーターとしての関数

Java で、関数をパラメーターとして別の関数に渡すにはどうすればよいですか?

Java 8 以降

Java 8 を使用ラムダ式。抽象メソッドが 1 つだけあるクラスまたはインターフェイス (SAM タイプと呼ばれることもあります) がある場合 (例:

public interface MyInterface {
    String doSomething(int param1, String param2);
}
ログイン後にコピー

)、MyInterface が使用される場所では代わりにラムダ式を使用できます:

class MyClass {
    public MyInterface myInterface = (p1, p2) -> { return p2 + p1; };
}
ログイン後にコピー

たとえば、次のことができます。新しいスレッドを作成して迅速に実行するには:

new Thread(() -> someMethod()).start();
ログイン後にコピー

メソッド参照構文を使用してより簡潔にします:

new Thread(this::someMethod).start();
ログイン後にコピー

If がラムダ式を使用しない場合式を使用すると、最後の 2 つの例は次のようになります:

new Thread(new Runnable() { someMethod(); }).start();
ログイン後にコピー

Java 8 より前のバージョン

一般的なパターンは、Callable などのインターフェイス内で関数を「ラップ」し、Callable を渡すことです。

public T myMethod(Callable<T> func) {
    return func.call();
}
ログイン後にコピー

このパターンは次のように呼ばれます。コマンドパターン。

インターフェイスは特定の目的のために作成するのが最善であることに注意してください。呼び出しを使用することを選択した場合は、上記の T を、文字列など、期待する戻り値のタイプに置き換えます。

以上がJava で関数をパラメータとして渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート