使用两个参数的Java方法引用,用于使用一个参数调用功能接口

时间:2016-06-29 15:37:47

标签: java lambda java-8 functional-interface

我完全不明白写一个表达式如何有效:

Comparator<String> stringComp = Comparator.nullsLast(String::compareTo);

因为:

  1. nullsLast接受Comparator作为参数
  2. Comparator的功能方法是compare(T, T),它接受​​两个参数
  3. compareTo只接受一个参数
  4. 如果没有双冒号运算符,我会写: Comparator<String> stringComp = Comparator.nullsLast((s1, s2) -> s1.compareTo(s2));
  5. 这是否意味着,当在仅接受一个参数的方法上使用双冒号运算符时,推断应该在lambda的第一个参数上调用该方法,使用lambda的第二个参数作为参数?这对我来说非常令人惊讶。

0 个答案:

没有答案