我完全不明白写一个表达式如何有效:
Comparator<String> stringComp = Comparator.nullsLast(String::compareTo);
因为:
nullsLast
接受Comparator
作为参数Comparator
的功能方法是compare(T, T)
,它接受两个参数compareTo
只接受一个参数
Comparator<String> stringComp = Comparator.nullsLast((s1, s2) -> s1.compareTo(s2));
这是否意味着,当在仅接受一个参数的方法上使用双冒号运算符时,推断应该在lambda的第一个参数上调用该方法,使用lambda的第二个参数作为参数?这对我来说非常令人惊讶。