使匿名内部类成为Java中的lambda

法比亚诺德

我需要修改我的代码,以达到“使匿名内部类成为lambda”的目的。

我有解决此问题的建议,但不知道lambda在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));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章