gpt4 book ai didi

Lambda表达式java 8映射方法

转载 作者:行者123 更新时间:2023-12-02 09:59:03 26 4
gpt4 key购买 nike

java 8中map方法的语法是:

<R> Stream<R> map(Function<? super T,? extends R> mapper)

但我可以使用 lambda 表达式:

personList.stream().filter(p -> p.getPersonType().equals("student"))
.map(p -> new Student(p.getId(), p.getName()))
.collect(Collectors.toList());

map 方法中的参数如何等同于 Function 数据类型。请帮助我理解这一点。

谢谢

最佳答案

函数Function<? super T,? extends R> mapper map的方法基本上代表任何采用一个参数并返回一个值的函数,因此在这种特定情况下 lambda p -> new Student(p.getId(), p.getName()) 是一个函数,采用Person p 并返回 Student因此非常适合。

换个角度看,lambda 相当于:

.map(new Function<Person, Student>() {
@Override
public Student apply(Person p) {
return new Student(p.getId(), p.getName());
}
})

关于Lambda表达式java 8映射方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50836095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com