我在很多地方见过这段代码,但我不明白如何将字符串传递给UpperCase作为"stream.map(-(";作用请参阅以下代码:
List myList = Arrays.asList("india", "australia", "england");
myList.stream().map(String :: toUpperCase).sorted().forEach(System.out :: println);
我的理解是stream.map方法采用java.util.Function<T、 U>包含U应用程序(T(方法的接口对象。这意味着,任何接受一个参数并返回一个值的方法都是";候选",并且可以在stream.map(..(方法中作为方法引用传递。但在上面的代码中,string.toUpperCase方法不接受任何参数,只返回string值。这意味着toUpperCase的签名与";U应用(T(";功能
那么上面的代码是如何正常工作的呢?
一个方法引用接受处理"这个";(即调用toUpperCase
的字符串(作为第一个参数。