我在下面有一个基本摘要类:
public Class Summary{
private String name;
private String status;
private String id;
// Getters and setters
}
然后我扩展了这个类以获得客户摘要:
public Class CustomerSummary extends Summary{
private String lastLogin;
private String address;
// Getters and setters
}
现在我调用一个Rest端点,将响应映射到Summary对象。然后我需要设置lastLogin和地址调用另一个rest端点并将组合数据作为CustomerSummary对象返回。
Summary summary = restClient.getStatus("1234");
CustomerSummary customer = new CustomerSummary()
如何将客户对象的所有继承字段设置为与摘要对象相同?我无法投射,因为我将不得不向下投射并将遇到ClassCastException。
我可能有10个字段,因此调用摘要对象的所有文件的客户对象的setter将导致大量重复的代码。有更智能的方法来解决这个问题吗?
答案 0 :(得分:3)
你可以制作一个"复制构造函数"
protected Summary(Summary template){
this.name = template.name;
// ....
}
并从您的子类中调用
CustomerSummary(Summary template){
super(template);
}
这样你就可以了
Summary summary = restClient.getStatus("1234");
CustomerSummary customer = new CustomerSummary(summary);