java - 无法理解 Java 8 的 Function<>
问题描述
当我学习如何使用各种新工具时,我遇到了我无法理解的语法(函数 x -> ...),如果可能的话,我希望有人编写等效的代码,这样我可以更好地理解它。
Function<String, HashSet<String>> asSet = (String x) ->
new HashSet<String>() {{
do_something(x);
}};
任何使用更传统语法而不是奇怪函数的代码块都将不胜感激,并有助于我更好地理解 Java!
解决方案
可以用匿名类代替:
Function<String, HashSet<String>> asSet = new Function<>() {
@Override
public HashSet<String> apply(String s) {
return new HashSet<>() {{
do_something(s);
}};
}
};
您只需实现功能接口apply
的方法:Function
请注意,函数式接口的实例可以使用 lambda 表达式、方法引用或构造函数引用来创建。
推荐阅读
- asp.net-core - Blazor NavigationManager 返回“/?”
- r - summary(linear_model)$coefficients 未显示 R 中的所有行
- c# - 从外部取消任务中的循环
- php - 无法使用 PHP 从 webapp 访问云语音 API
- macos - 如何创建 Applescript 来设置键盘快捷键?
- sqlite - 在 SQLite 中覆盖当前时间/“现在”
- python - python:转换 24 小时以及为什么使用 if 将返回 None
- auto-increment - 在 Gremlin 中实现行号的最简单方法
- python - 有效打印大量不同字符串列表的交集和并集
- git - 即使将我的公钥上传到 azure 也无法使用 ssh 连接到 azure devops