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