2011-12-12 111 views
6

我想將超類對象獲取器複製到子類對象設置器。但我怎麼能輕鬆做到這一點。我正在尋找像克隆這樣的東西。你能幫我找到它嗎?如何將超類對象值複製到子類對象值?

非常感謝。

的簡單代碼:

超級類:

public class SuperClass1{ 
    private String name; 
    private String surname; 

    public void setName(String name){ 
    this.name=name; 
    } 


    public String getName(){ 
    return this.name; 
    } 

    public void setSurname(String surname){ 
    this.surname=surname; 
    } 


    public String getSurname(){ 
    return this.surname; 
    } 

} 

子類

public class SubClass1 extends SuperClass1{ 
    private float gpa; 

    public void setGpa(float gpa){ 
     this.gpa=gpa; 
    } 

    public float getGpa(){ 
     return gpa; 
    } 


} 

和主叫方類別:

public class CallerClass1{ 
    public static void main(String[] args){ 
     SuperClass1 super1=new SuperClass1(); 
     SubClass1 subclass1=new SubClass1(); 
     //How to subclass1 object values easily taken from super1 
    } 
} 

}

+0

我不相信這個問題是個壞問題。如果你有很好的問題,請回答 – olyanren

+0

不要低估。可能是問題不壞,但問的風格是..! – Mudassir

+0

@Mudassir可能是真的。但我想更簡單地提出這個問題,而不用無聊地閱讀它。 – olyanren

回答

6

如果性能不是問題,則可以使用反射將所有屬性從一個類複製到另一個類。

檢查此鏈接到這個其他問題,說明如何做到這一點:

Copy all values from fields in one class to another through reflection

這其它鏈接會給你的代碼,而無需使用的BeanUtils:

http://blog.lexique-du-net.com/index.php?post/2010/04/08/Simple-properties-Mapper-by-reflection

我總是在我的項目中使用這種功能。真的很有用。

+0

非常感謝:)這是我正在尋找的 – olyanren

+0

Jonathan,是否可以使用BeanUtils複製超類字段? – Don

相關問題