java - 使匿名内部类成为 Java 中的 lambda
问题描述
我需要修改我的代码,目标是(我引用)“使匿名内部类成为 lambda”。
我有一个解决这个问题的建议,但不知道 lambdas 在 Java 中是如何工作的我不知道如何将这个建议应用于我的具体情况,有人可以帮助我吗?
这是我的建议
这是“错误”的版本:
myCollection.stream().map(new Mapper<String,String>() {
public String map(String input) {
return new StringBuilder(input).reverse().toString();
}
});
这是“正确”的版本:
myCollection.stream().map(input -> new StringBuilder(input).reverse().toString());
现在,我的代码中的“错误”版本是这样的:
Collections.sort(commits, new Comparator<GitCommit>() {
// @Override
public int compare(GitCommit c1, GitCommit c2) {
return c1.getDate().compareTo(c2.getDate());
}
});
对应的“正确”版本是什么?
解决方案
Collections.sort(commits, Comparator.comparing(GitCommit::getDate));
甚至
commits.sort(Comparator.comparing(GitCommit::getDate));
推荐阅读
- yammer - 通过 API 和 PowerShell 重新激活 Yammer 用户
- kotlin - 使用 WebTestClientAutoConfiguration 时有没有办法指定 webSessionManager?
- c++ - 如何在 Qt3DWindow 内绘制 Q3DSurface 轴?
- python - Python fwrite函数错误:需要像对象这样的字节,而不是str
- amazon-web-services - Ansible - EC2 创建新标签并删除标签
- php - 如何获取 XML 验证错误的所有父元素?
- php - 无法在 symfony 控制器脚本中访问数组内的数量元素
- java - Android Studio:未找到 ID 为“com.android.application”的插件
- datatables - 获取值并传递给参数数据表
- azure - Azure AD OAuth - 多个目录和 GraphAPI 中的用户