我有一个基摘要类如下:
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 和地址,并将组合数据作为 CustomerSummary 对象返回。
Summary summary = restClient.getStatus("1234");
CustomerSummary customer = new CustomerSummary()
如何将客户对象的所有继承字段设置为与汇总对象相同?我无法进行强制转换,因为我必须向下强制转换并且会遇到 ClassCastException。
我可能有 10 个字段,因此为摘要对象的所有字段调用客户对象的 setter 将导致大量重复代码。有更聪明的方法来处理这个问题吗?
最佳答案
你可以创建一个“复制构造函数”
protected Summary(Summary template){
this.name = template.name;
// ....
}
并从您的子类中调用它
CustomerSummary(Summary template){
super(template);
}
这样你就可以做到
Summary summary = restClient.getStatus("1234");
CustomerSummary customer = new CustomerSummary(summary);
关于java - Java中如何根据父类(super class)填充子类的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30836111/