问答详情
源自:4-1 方法引用

问个问题。

http://img.mukewang.com/5e99736800017f4112250298.jpghttp://img3.mukewang.com/5e9973a60001522306770381.jpg


//3.静态方法引用
Collections.sort(userList,User::compareByAge);
System.out.println(userList);


可以看到Collections.sort()第二个参数接收的是一个Comparator类型的对象。

这里为什么可以传入 User::compareByAge ?

User又没有实现Comparator接口,程序如何能确定我们再User里定义的compareByAge是Comparator接口的排序方法实现 ?

提问者:马什么梅 2020-04-17 17:20

个回答

  • 大牧莫邪
    2020-04-18 12:33:38
    已采纳

    传入参数会自动进行类型检查,对传入输入进行对应方法调用,如果调用了对应的方法但是参数、返回值等出现不一致情况会检查出错吖;你想想如果我们自己设计类似的流程,是不是也会这样去考虑呢