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