Comparator.comparing在java 8流中没有Method引用时无法正常工作

Shi*_*pta -5 java stream comparator java-8

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

//working 
Run Code Online (Sandbox Code Playgroud)

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

//Not working..
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么我不能使用比较器比较没有方法参考?

Rav*_*avi 6

Comparator#comparing

接受从类型T中提取Comparable排序键的函数,并返回通过该排序键进行比较的Comparator.

Animal::getName给出方法参考,然后Animal.getName()给你一个String(可能).

参考:

Java 8中的::(双冒号)运算符