首页 > 解决方案 > 使匿名内部类成为 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());
        }
    });

对应的“正确”版本是什么?

标签: javalambda

解决方案


Collections.sort(commits, Comparator.comparing(GitCommit::getDate));

甚至

commits.sort(Comparator.comparing(GitCommit::getDate));

推荐阅读