2011-12-12 9 views
6

Quiero copiar getters de objeto de superclase para establecer objetos de subclase. Pero, ¿cómo puedo hacer esto fácilmente? Estoy buscando algo así como clonar. ¿Podrías ayudarme a encontrarlo?¿Cómo se copian los valores del objeto de la superclase a los valores del objeto de la subclase?

Muchas gracias.

Un código simple:

Súper Clase:

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; 
    } 

} 

Subclase

public class SubClass1 extends SuperClass1{ 
    private float gpa; 

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

    public float getGpa(){ 
     return gpa; 
    } 


} 

de llamada entrante Clase:

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

No creo que esta pregunta sea mala. Si tiene una buena pregunta, pregunte y respondo – olyanren

+0

No downvote. Puede que la pregunta no sea mala, ¡pero el estilo de preguntar es ...! – Mudassir

+0

@Mudassir puede ser cierto. Pero quería hacer la pregunta más simplemente palabras sin aburrirme leyéndola. – olyanren

Respuesta

6

Si el rendimiento no es un problema aquí, puede copiar todas las propiedades de una clase a otra haciendo uso de la reflexión.

Comprobar este enlace a esta otra pregunta que explica cómo hacerlo:

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

Este otro enlace le dará el código, sin necesidad de utilizar BeanUtils:

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

I siempre uso este tipo de funciones en mis proyectos. Realmente útil.

+0

Muchas gracias :) Esto es lo que estoy buscando – olyanren

+0

Jonathan, ¿es posible copiar campos de superclase con BeanUtils? – Don

Cuestiones relacionadas