刚学看这个表达式,感觉这个东西有些地方是个玄学啊,没搞明白...刚发现的一个问题,有一个TestLambda2的类,还有一个TestLambda4的接口类中的方法:接口中的:参数一样,类中的是static修饰的,两个没有任何联系,继承啊实现啊这些,然后:成立了...即使我在弄一个新的接口然后参数一样,返回类型一样,然后也没有任何联系,依然可以引用,求大神给一个通俗点的教程地址...
2 回答
MM们
TA贡献1886条经验 获得超2个赞
Lambda表达式的引入是java对函数式编程思想的引入。简单的来说,方法也可以作为一种变量进行赋值和传递。但是因为java本身的面向对象思想,所以以类的形式对函数式编程思想进行实现。
慕无忌1623718
TA贡献1744条经验 获得超4个赞
Java 是面向对象的语言,所以各种语法都无法脱离 类 而存在,而看问题也要透过现象看到本质:
对于 TestLambda4 lambda4 = TestLambda2::test1
这个方法引用,你可以理解为:
TestLambda4 lambda4 = str -> TestLambda2.test1(str);
而对于 Lambda 表达式,虽然底层实现和匿名内部类有区别,但是在语法功能上,二者是完全一致的,即可以把上面的 Lambda 理解为:
TestLambda4 lambda4 = new TestLambda4() { @Override public String test111(String s) { return TestLambda2.test1(s); } };
- 2 回答
- 0 关注
- 86 浏览
添加回答
举报
0/150
提交
取消