ホームページ >Java >&#&チュートリアル >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 サイトの他の関連記事を参照してください。