2011-12-12 108 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

相关问题