有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在流()中使用方法引用。映射(函数)java 8

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

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

我的理解是流。map方法采用java。util。功能<;T、 U>;包含U apply(T)方法的接口对象。这意味着,任何接受一个参数并返回一个值的方法都是方法引用的“候选者”,可以在流中传递。地图(…)方法作为方法参考。但在上面的代码中,字符串。toUpperCase方法不接受任何参数,只返回字符串值。这意味着toUpperCase的签名与“U apply(T)”函数不匹配

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


共 (1) 个答案

  1. # 1 楼答案

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