让我们看看下面的代码。lambda表达式如何映射到函数接口?
List<String> names = Arrays.asList("Adam", "Brian", "Supun");
List<Integer> lengths = names.stream()
.map(name -> name.length())
.collect(Collectors.toList());
,只需再将着眼于为javadocstreams.map
。这里出现map
方法的签名。
<R> Stream<R> map(Function<? super T,? extends R> mapper)
有人可以请解释JVM如何映射在Function<? super T,? extends R> mapper
方面我们给lambda表达式(name -> name.length()
)?
你想完成什么?您不需要创建Stream类型的局部变量。你在寻找'names.stream()。map(...)。collect(Collectors.toList())'?另外,不要使用原始的List类型。 – Michael
@Michael实际上我需要观众专注于lambda表达式部分。所以我没有添加你提到的后面的增加。这只是为了理解lambda到功能接口的映射。没有其他的。 :)) –
@迈克尔明白你的观点。谢谢。 :))希望我已经纠正了代码。 –