有一个列表 A 与房地产开发商。开发人员模式喜欢这样:
@Getter
@Setter
public class Developer {
private String name;
private int age;
public Developer(String name, int age) {
this.name = name;
this.age = age;
}
public Developer name(String name) {
this.name = name;
return this;
}
public Developer name(int age) {
this.age = age;
return this;
}
}
清单 A 的属性:
List<Developer> A = ImmutableList.of(new Developer("Ivan", 25), new Developer("Curry", 28));
要求将List A转换为List B,List B具有ProductManager属性,属性与List A相同。
@Getter
@Setter
public class ProductManager {
private String name;
private int age;
public ProductManager(String name, int age) {
this.name = name;
this.age = age;
}
public ProductManager name(String name) {
this.name = name;
return this;
}
public ProductManager name(int age) {
this.age = age;
return this;
}
}
在过去,我们会写这样的代码:
public List<ProductManager> convert() {
List<ProductManager> pros = new ArrayList<>();
for (Developer dev: A) {
ProductManager manager = new ProductManager();
manager.setName(dev.getName());
manager.setAge(dev.getAge());
pros.add(manager);
}
return pros;
}
我们如何使用 Java 8 以更优雅和简洁的方式编写上述内容?
原文由 Ivan 发布,翻译遵循 CC BY-SA 4.0 许可协议
你将不得不使用类似下面的东西:
// 对于大量的属性,假设属性具有相似的名称 // 否则使用不同的名称请参考 此