ホームページ >Java >&#&チュートリアル >Java で関数ポインタ機能を実現するにはどうすればよいですか?

Java で関数ポインタ機能を実現するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-19 04:27:02679ブラウズ

How Can I Achieve Function Pointer Functionality in Java?

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 サイトの他の関連記事を参照してください。

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