java - 如何在Java中调用用户定义的Lambda函数

标签 java function lambda java-11 jshell

this tutorial ,我看到了一个用户定义的 lambda 函数的示例。

Function<String, String> toLowerCase = (var input) -> input.toLowerCase();

我想知道如何调用这个函数?我在 jshell 中尝试过,但无法。我可以很好地创建函数:

有什么想法吗?

jshell> Function<String, String> toLowerCase = (var input) -> input.toLowerCase();
toLowerCase ==> $Lambda$16/0x00000008000b3040@3e6fa38a

但似乎无法执行它:

jshell> String hi = "UPPER";
jshell> String high;
high ==> null

jshell> toLowerCase(high,low);
|  Error:
|  cannot find symbol
|    symbol:   method toLowerCase(java.lang.String,java.lang.String)
|  toLowerCase(high,low);
|  ^---------^

jshell> 

最佳答案

您需要应用该函数,例如:

toLowerCase.apply(high)

enter image description here

或将其值分配给另一个变量low,如下所示:

jshell> String low = toLowerCase.apply(high)
low ==> "ggggg"
<小时/> <小时/>

建议:使用 jshell 自动完成(在 macOS 上使用 Tab 键)来找出所有方法都适用于调用的内容声明的变量。

enter image description here

关于java - 如何在Java中调用用户定义的Lambda函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60418795/

相关文章:

java - 如果按下另一个按钮,则添加两个按钮

java - vector 中参数的匹配

javascript - 在导致错误的 JavaScript 花括号中返回一个对象

c# - 是否可以在不包含 System.Linq 命名空间的情况下使用 Linq 和 lambda?

java - Java 代码中奇怪的逻辑错误

java - 当在 javafx 中重新加载场景最大化时不起作用

java - 在Android中解码二进制Android xml资源

javascript - 在没有错误消息的 html 文件中找不到外部 JS 函数。怎么了?

c++ - 简单错误 : expected primary-expression before ';' token

python - 如何通过map或lambda函数提取带有键的dict的值