【问题标题】:use of Method Reference in stream().map(Function) java 8 [duplicate]在stream().map(Function)java 8中使用方法引用[重复]
【发布时间】:2020-11-25 21:55:52
【问题描述】:

我在很多地方都看过这段代码,但我不明白我们如何将 string.toUpperCase 作为“stream.map(-)”函数中的方法引用传递。?请参阅以下代码:

List myList = Arrays.asList("india", "australia", "england"); myList.stream().map(String :: toUpperCase).sorted().forEach(System.out :: println);

我的理解是 stream.map 方法采用 java.util.Function 接口对象,其中包含 U apply(T) 方法。这意味着,任何接受一个参数并返回一个值的方法都是方法引用的"candidate",并且可以作为方法引用在stream.map(..) 方法中传递。但在上面的代码中 string.toUpperCase 方法不接受任何参数,而只返回 String 值。这意味着 toUpperCase 的签名与“U apply(T)”函数不匹配。

那么上面的代码是如何正常工作的呢?

【问题讨论】:

    标签: java java-8 method-reference


    【解决方案1】:

    方法引用将“this”(即调用toUpperCase 的字符串)作为第一个参数。

    【讨论】:

      猜你喜欢
      • 2019-02-14
      • 1970-01-01
      • 2016-08-23
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      相关资源
      最近更新 更多