我试图从oracle lambdas学习和方法引用中理解以下示例代码:
String city = "Munich";
Supplier<String> lambda = city::toUpperCase;
System.out.println(lambda.get());
他们为什么不直接打电话
city.toUpperCase();
这个方法不是绑定到特定的示例变量吗 city
? 因此,它将如何在不同的环境中执行,以提供lambdas的好处-我无法理解这一点。
我试图从oracle lambdas学习和方法引用中理解以下示例代码:
String city = "Munich";
Supplier<String> lambda = city::toUpperCase;
System.out.println(lambda.get());
他们为什么不直接打电话
city.toUpperCase();
这个方法不是绑定到特定的示例变量吗 city
? 因此,它将如何在不同的环境中执行,以提供lambdas的好处-我无法理解这一点。
2条答案
按热度按时间093gszye1#
在您展示的有限代码片段中,您实际上只需调用
city.toUpperCase();
. 在那里使用lambda是没有意义的。你一定忽略了一个更重要的教训。我怀疑那个教程代码的作者是在演示这种代码的效果,解释等效的行为。您应该链接到确切的教程页面以获得更详细的内容。
lambda的要点是您希望在代码库的其他地方执行该方法引用。与其在当前代码中立即执行该方法,不如使用其他代码上下文来运行该方法。您希望将该方法引用作为参数传递给其他方法调用。
x7rlezfr2#
因为那样它就不是“学习lambda和方法引用”的好例子了。。。