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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-12 22:08:13987ブラウズ

How Can Functions Be Passed as Parameters in Java?

Java で関数をパラメータとして渡す

Java では、Java 8 のラムダ式を利用して関数を引数として渡すことができます。単一の抽象メソッド (SAM タイプ) を含むインターフェイスを操作する場合、ラムダ式を置き換えることができるため、コードを簡潔にすることができます。例:

interface MyInterface {
    String doSomething(int param1, String param2);
}

MyInterface myInterface = (p1, p2) -> { return p2 + p1; };

または、メソッド参照により、さらに明確な構文を提供できます。

new Thread(this::someMethod).start();

Java 8 より前のアプローチ

以前Java 8 のコマンド パターンは、関数を引数として渡すためによく使用されていました。これには、Callable のようなインターフェイスで関数をラップすることが含まれます:

public T myMethod(Callable<T> func) {
    return func.call();
}

例:

public int methodToPass() { return 3; }

public void dansMethod(int i, Callable<Integer> myFunc) { }

関数を呼び出すには、匿名の内部クラスが使用されます:

dansMethod(100, new Callable<Integer>() {
   public Integer call() {
        return methodToPass();
   }
});

このアプローチは、他の言語の関数ポインターと本質的に同等であることに注意してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。