2015-06-15 43 views
0

下面我有一个基类摘要:如何根据Java中的超类填充子类的字段?

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端点映射到摘要对象的响应。然后,我需要设置lastLogin和地址调用另一个其他端点,并将组合数据作为CustomerSummary对象返回。

Summary summary = restClient.getStatus("1234"); 
CustomerSummary customer = new CustomerSummary() 

如何设置客户对象的所有继承字段与摘要对象相同?我无法投射,因为我必须投下并会遇到ClassCastException。

我可能有10个字段,因此为摘要对象的所有文件调用customer对象的setter将导致很多重复的代码。有没有更聪明的方法来处理这个问题?

+0

'customer.setName(摘要.getName());' –

回答

3

你可以做一个 “拷贝构造函数”

protected Summary(Summary template){ 
    this.name = template.name; 
    // .... 
} 

,并呼吁从你的子类

CustomerSummary(Summary template){ 
    super(template); 
} 

,这样就可以做

Summary summary = restClient.getStatus("1234"); 
CustomerSummary customer = new CustomerSummary(summary);