为了账号安全,请及时绑定邮箱和手机立即绑定

java8中的lambda定义的函数该如何引用

java8中的lambda定义的函数该如何引用

慕码人2483693 2019-03-20 19:15:31
定义好的函数,不知道该如何使用。// 不知道怎么引用BinaryOperator<Long> add = (x, y) -> x + y;
查看完整描述

2 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

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。


查看完整回答
反对 回复 2019-04-20
?
holdtom

TA贡献1805条经验 获得超10个赞

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


查看完整回答
反对 回复 2019-04-20
  • 2 回答
  • 0 关注
  • 1106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信