一尘不染

Java中的函数指针

java

这可能是普通且琐碎的事情,但我似乎在寻找具体答案时遇到了麻烦。在C#中,有一个委托的概念,它与C ++中的函数指针紧密相关。Java中是否有类似的功能?考虑到指针的缺失,最好的方法是什么?需要明确的是,我们在这里谈论头等舱。


阅读 426

收藏
2020-03-12

共1个答案

一尘不染

类似函数指针的功能的Java习惯用法是实现接口的匿名类,例如

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

更新:在Java 8之前的Java版本中,以上是必要的。现在,我们有更好的替代方法,即lambda:

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

和方法参考:

list.sort(MyClass::isGreaterThan);
2020-03-12