Javaの関数ポインター 質問する

Javaの関数ポインター 質問する

これは一般的で些細なことかもしれませんが、具体的な答えを見つけるのに苦労しているようです。C# にはデリゲートの概念があり、これは C++ の関数ポインターの考え方と密接に関連しています。Java には同様の機能がありますか? ポインターがあまりないことを考えると、これに対する最善の方法は何ですか? 明確に言うと、ここではファーストクラスについて話しています。

ベストアンサー1

関数ポインタのような機能のためのJavaの慣用句は、インターフェースを実装する匿名クラスである。例えば、

Collections.sort(list, new Comparator<MyClass>(){
    public int compare(MyClass a, MyClass b)
    {
        // compare objects
    }
});

アップデート:上記は、Java 8 より前のバージョンの Java では必須です。現在は、ラムダというより優れた代替手段があります。

list.sort((a, b) -> a.isGreaterThan(b));

およびメソッド参照:

list.sort(MyClass::isGreaterThan);

おすすめ記事