ben*_*ier 3 java lambda java-8
我正在尝试声明一个HashMap将接受一个字符串并返回一个Callable.
我有:
Map<String, Callable<String>> commands = new HashMap<>();
commands.put("get", (String item) -> get(item));
Run Code Online (Sandbox Code Playgroud)
其中get是一个返回void的函数.
但我得到了
"Bad return type in Lambda expression: Void cannot be converted into a string."
Run Code Online (Sandbox Code Playgroud)
为什么期望函数返回一个字符串?我想通过lambda a String并void回来.
A Callable<String>有一个返回a String(V call() throws Exception)的方法,因此你不能使用带有void返回类型的lambda.你可以Consumer<String>改用.
Map<String, Consumer<String>> commands = new HashMap<>();
commands.put("get", (String item) -> get(item));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2138 次 |
| 最近记录: |