ホームページ >Java >&#&チュートリアル >Java はモジュールコードの関数ポインターをどのように模倣できるのでしょうか?

Java はモジュールコードの関数ポインターをどのように模倣できるのでしょうか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-19 09:16:02947ブラウズ

How Can Java Mimic Function Pointers for Modular Code?

Java の関数ポインターの代替

Java には関数ポインターがないため、モジュール式の再利用可能なコードの作成が妨げられる可能性があります。ただし、匿名内部クラスという解決策があります。

単一行の計算を除いて同一の操作を実行する複数のメソッドの要件を考えてみましょう。理想的には、関数ポインターを渡すだけで十分ですが、Java はそれをサポートしていません。別の方法は、目的の関数を唯一のメンバーとして持つインターフェイスを定義することです。

たとえば、文字列を受け取り、整数を返す関数を定義するには、次のようにします。

interface StringFunction {
    int func(String param);
}

ここで、関数ポインタを受け入れるメソッドは StringFunction インスタンスを受け取ることができます:

public void takingMethod(StringFunction sf) {
    int i = sf.func("my string");
    // do other operations ...
}

このメソッドを呼び出すと次のようになります:

ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // Implementation for the single changed line
    }
});

Java 8 では、ラムダ式を使用してこれをさらに簡略化できます。 :

ref.takingMethod(param -> {
    // Implementation for the single changed line
});

匿名の内部クラスまたはラムダ式を利用することで、Java プログラマは関数ポインタの機能を実現し、柔軟性とコードの再利用性を実現できます。

以上がJava はモジュールコードの関数ポインターをどのように模倣できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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