java—示例上的方法引用—为什么不直接调用方法(因为它如何在不同的上下文中执行)?

vecaoik1  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(329)

我试图从oracle lambdas学习和方法引用中理解以下示例代码:

String city = "Munich";
Supplier<String> lambda = city::toUpperCase;
System.out.println(lambda.get());

他们为什么不直接打电话

city.toUpperCase();

这个方法不是绑定到特定的示例变量吗 city ? 因此,它将如何在不同的环境中执行,以提供lambdas的好处-我无法理解这一点。

093gszye

093gszye1#

在您展示的有限代码片段中,您实际上只需调用 city.toUpperCase(); . 在那里使用lambda是没有意义的。
你一定忽略了一个更重要的教训。我怀疑那个教程代码的作者是在演示这种代码的效果,解释等效的行为。您应该链接到确切的教程页面以获得更详细的内容。
lambda的要点是您希望在代码库的其他地方执行该方法引用。与其在当前代码中立即执行该方法,不如使用其他代码上下文来运行该方法。您希望将该方法引用作为参数传递给其他方法调用。

x7rlezfr

x7rlezfr2#

因为那样它就不是“学习lambda和方法引用”的好例子了。。。

相关问题