2015-06-15 78 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);