Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Comparator.Comparating在java 8流中没有方法引用时不起作用 List animals=this.service.findAll(); animals=animals.stream().sorted(Comparator.comparing(Animal::getName)).collect(Collectors.toList()); //工作_Java_Java 8_Stream_Comparator - Fatal编程技术网

Comparator.Comparating在java 8流中没有方法引用时不起作用 List animals=this.service.findAll(); animals=animals.stream().sorted(Comparator.comparing(Animal::getName)).collect(Collectors.toList()); //工作

Comparator.Comparating在java 8流中没有方法引用时不起作用 List animals=this.service.findAll(); animals=animals.stream().sorted(Comparator.comparing(Animal::getName)).collect(Collectors.toList()); //工作,java,java-8,stream,comparator,Java,Java 8,Stream,Comparator,当 List<Animal> animals = this.service.findAll(); animals = animals.stream().sorted(Comparator.comparing(Animal::getName)).collect(Collectors.toList()); //working List animals=this.service.findAll(); animals=animals.stream().sorted(Comparator

List<Animal> animals = this.service.findAll();
animals = animals.stream().sorted(Comparator.comparing(Animal::getName)).collect(Collectors.toList());

//working 
List animals=this.service.findAll();
animals=animals.stream().sorted(Comparator.comparing(Animal.getName()).collect(Collectors.toList());
//不工作。。

有人能告诉我为什么我不能在没有方法引用的情况下使用comparator comparing吗?

除非
getName()
是静态方法,否则它可能不会编译

如果您不想使用方法引用(它不是syntitaticsugar),那么使用lambda也应该可以

List<Animal> animals = this.service.findAll();
animals = animals.stream().sorted(Comparator.comparing(Animal.getName()).collect(Collectors.toList());

//Not working..

接受从类型T中提取可比较排序键的函数, 并返回一个比较器,该比较器通过该排序键进行比较

Animal::getName
提供方法引用,而
Animal.getName()
提供一个
字符串
(可能)

参考:


寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误,以及在问题本身中重现这些问题所需的最短代码。没有明确问题说明的问题对其他读者没有用处。请参阅:如何创建问题,如果对您有效,请将此标记为答案谢谢
animals.stream().sorted(Comparator.comparing(a -> a.getName()).collect(Collectors.toList());