在C#中,我们可以选择使用属性选择器来指定对象的属性(例如,当使用LINQ时),如下所示:
var usernames = customers.Where(x => x.Age > 20).Select(x => x.Username);在这里,我们首先选择要执行比较的属性Age,然后将属性Username指定给Select(...)子句。
我目前正在尝试使用Java中的lambda表达式来复制此功能,以使我的代码用户能够指定哪个属性应用于以后的某些操作。最终结果应该类似于以下内容:
public class Builder<T> {
// ...
private Field field;
Builder<T> forField(SomeFunctionalInterface s) {
this.field = s.evaluate();
return this;
}
// ...
}感谢您的努力。
发布于 2019-05-05 20:07:45
您可以使用流API来实现以下功能:
customers.stream().filter(customer => customer.getAge() > 20).map(Customer::getUserName).collect(Collectors.toList())https://stackoverflow.com/questions/55989763
复制相似问题