我试图Map下面的列表:
mappedCustomers = customers.stream().map(e ->e.setLastName("e")).collect(Collectors.toList());
客户分类
@Entity
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue
Long id;
String firstName;
String lastName;
public Long getId() {
return id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
但我得到这个错误:
不存在类型变量R的示例,因此void符合R
2条答案
按热度按时间knpiaxh11#
流API中的Map函数,需要返回值的函数。
但是setters的返回值是void(根本没有返回值),因此您的代码不符合map方法签名,如果您想迭代集合并执行可以使用forEach的操作
没有必要做的收集,因为你最初的收集将是相同的,但它将包含您的修改。
abithluo2#
map()
返回一个新的流,所以如果需要的话,你可以链接另一个操作。然后,collect()
返回一个新的列表。但是因为你只调用了一个setter,所以你最终得到了两个包含相同对象的列表。在这种情况下,forEach()
会更简单。