ホームページ > Java > &#&チュートリアル > Java で関数ポインタをシミュレートする最良の方法は何ですか?

Java で関数ポインタをシミュレートする最良の方法は何ですか?

Linda Hamilton
リリース: 2024-12-02 19:57:10
オリジナル
930 人が閲覧しました

What's the Best Way to Simulate Function Pointers in Java?

Java の関数ポインターに最も近い代替手段

Java には関数ポインターがないため、多少の違いはあるものの同様のタスクを実行するメソッドを作成する際に課題が生じます。これに対処するための適切な代替案は、匿名内部クラスを使用することです。

匿名内部クラスの解決策

匿名内部クラスを使用すると、別の名前付き内部クラスを作成せずにメソッドを定義できます。クラス。これは、必要なメソッドを使用してインターフェイスを定義し、それを匿名の内部クラスに実装するというパターンに従います。

たとえば、文字列をパラメータとして受け取り、整数を返すメソッドを考えてみましょう。まず、インターフェイスを定義します。

interface StringFunction {
    int func(String param);
}
ログイン後にコピー

この関数へのポインターを受け入れるメソッドは次のようになります。

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

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