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

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


// 不知道怎么引用

BinaryOperator<Long> add = (x, y) -> x + y;


慕码人2483693
浏览 1107回答 2
2回答

喵喵时光机

public class Main {&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; private long t, u;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; private Long test(BinaryOperator<Long> b) {&nbsp; &nbsp; &nbsp; &nbsp; return b.apply(t, u);&nbsp; &nbsp; }&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Main m = new Main();&nbsp; &nbsp; &nbsp; &nbsp; m.t = 1; m.u = 2;&nbsp; &nbsp; &nbsp; &nbsp; BinaryOperator<Long> b = (x, y) -> x + y;&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(m.test(b));&nbsp; &nbsp; }}单独拉出来是没法用的,Lambda只是定义了数据的操作方式,也就是定义了一个函数。具体在哪里用,需要定义一个方法,参数为lambda表达式(函数式接口),然后方法内部调用lambda实际的操作(接口定义的中那一个函数),比如accept。

holdtom

Lambda定义的并不是函数,它只是匿名类的缩写方式,其生成的还是一个对象。就如你的例子中,它生成的一个BinaryOperator<Long>对象,之后就是这个类的实例对象了,该怎么用就和该怎么用对象一样。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java