当前位置:  开发笔记 > 编程语言 > 正文

Java 8 Lambda不工作?

如何解决《Java8Lambda不工作?》经验,为你挑选了1个好方法。

嗨,我有这个(我假设是)真正琐碎的代码:

List f = new LinkedList();
    Collections.sort(f, (Integer f1, Integer f2) -> {
        Integer.compare(f1,f2);
    });

但是,我得到以下编译错误:

无法转换ComparatorComparator

这不是很有帮助 - 出了什么问题?



1> Anton Balani..:

在这种情况下,您可以使用方法引用:

 List f = new LinkedList<>();
 Collections.sort(f, Integer::compare);

在原始代码中缺少return语句:

 Collections.sort(f, (f1 ,  f2) -> {
        return Integer.compare(f1,f2);
 });

如果lambda包含,则必须使用 return{}

没有返回和括号的相同的事情:

Collections.sort(f, (f1 ,  f2) -> 
         Integer.compare(f1,f2)
);

以下评论部分的一些有用的注释:

可以使用Collections.sort(f)和依赖自然顺序.作者:Jean-FrançoisSavard

由于Java 8 List接口具有sort也可以使用的方法,f.sort(null); f.sort(Comparator.naturalOrder());或者Collections.sort(f, Comparator.naturalOrder());由Holger使用


你可以简单地做Collections.sort(f)并依赖自然顺序.
或``f.sort(null);`.或者,`f.sort(Comparator.naturalOrder());`或,`Collections.sort(f,Comparator.naturalOrder());`也可以.
推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有