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

Susan Sarandon
リリース: 2024-11-19 09:16:02
オリジナル
883 人が閲覧しました

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

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