Java で関数ポインターの代わりに使用するもの
Java プログラミング言語では、関数ポインターは関数を渡すことを可能にする機能です。他の関数への引数としては存在しません。ただし、同様の機能を実現する代替手段があります。
実行可能なオプションの 1 つは、匿名内部クラスです。 1 行のコードの小さな変更を除き、同じ操作を実行する複数のメソッドを作成する必要性を考慮してください。匿名内部クラスは解決策を提供します。
匿名内部クラスを利用するには、渡されるメソッドを宣言するインターフェースを定義する必要があります。たとえば、メソッドが String パラメータを受け取り、整数を返す場合、インターフェイスは次のようになります。
interface StringFunction { int func(String param); }
関数ポインタを受け入れるメソッドは、次のように StringFunction インターフェイスのインスタンスを受け入れます。
public void takingMethod(StringFunction sf) { int i = sf.func("my string"); // do whatever ... }
このメソッドを呼び出すには、匿名の内部メソッドを使用します。次のようなクラス:
ref.takingMethod(new StringFunction() { public int func(String param) { // body } });
Java 8 以降では、ラムダ式がより簡潔な代替手段を提供します:
ref.takingMethod(param -> bodyExpression);
これにより、関数を簡潔で読みやすい形式で引数として渡すことができます。この方法では、関数ポインタの動作を効果的にエミュレートします。
以上がJava で関数ポインタ機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。