java8中的lambda定义的函数该如何引用
PHP中文网
PHP中文网 2017-04-18 09:18:55
0
2
306

定义好的函数,不知道该如何使用。

// 不知道怎么引用
BinaryOperator<Long> add = (x, y) -> x + y;
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
伊谢尔伦
public class Main {
    
    private long t, u;
    
    private Long test(BinaryOperator<Long> b) {
        return b.apply(t, u);
    }
    public static void main(String[] args) {
        
        Main m = new Main();
        m.t = 1; m.u = 2;
        BinaryOperator<Long> b = (x, y) -> x + y;
        System.out.println(m.test(b));
    }
}

单独拉出来是没法用的,Lambda只是定义了数据的操作方式,也就是定义了一个函数。具体在哪里用,需要定义一个方法,参数为lambda表达式(函数式接口),然后方法内部调用lambda实际的操作(接口定义的中那一个函数),比如accept。

刘奇

Lambda定义的并不是函数,它只是匿名类的缩写方式,其生成的还是一个对象。就如你的例子中,它生成的一个BinaryOperator<Long>对象,之后就是这个类的实例对象了,该怎么用就和该怎么用对象一样。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!