Java中的函数指针 [英] Function Pointers in Java

查看:197
本文介绍了Java中的函数指针的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这可能是常见的事情,但是我似乎找不到具体的答案。在C#中有一个代表的概念,它强调了C ++中函数指针的思想。 Java中有类似的功能吗?鉴于指针有些缺席,那么最好的方法是什么?而且要清楚,我们在这里说一流。

This may be something common and trivial, but I seem to be having trouble finding a concrete answer. In C# there is a concept of delegates, which relates strongly to the idea of function pointers from C++. Is there a similar functionality in Java? Given that pointers are somewhat absent, what is the best way about this? And to be clear, we're talking first class here.

推荐答案

类似函数指针的功能的Java成语是实现接口的匿名类,例如

The Java idiom for function-pointer-like functionality is an an anonymous class implementing an interface, e.g.

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

更新:以上是Java 8之前的Java版本所必需的。现在我们有更好的选择,即lambdas:

Update: the above is necessary in Java versions prior to Java 8. Now we have much nicer alternatives, namely lambdas:

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

和方法引用:

list.sort(MyClass::isGreaterThan);

这篇关于Java中的函数指针的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆