2011-12-12 22 views
6

Nesne belirteçleri alt sınıfı için superclass nesne yakalayıcılarını kopyalamak istiyorum. Ama bunu nasıl kolayca yapabilirim. Klon gibi bir şey arıyorum. Bulmam için bana yardım edebilir misiniz?Nesne değerlerini alt sınıflara ayırmak için superclass nesne değerleri nasıl kopyalanır?

Çok teşekkür ederim.

Basit kodu:

Süper Sınıf:

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

} 

Alt Sınıf

public class SubClass1 extends SuperClass1{ 
    private float gpa; 

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

    public float getGpa(){ 
     return gpa; 
    } 


} 

ve Arayan Sınıfı:

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

Bu sorunun kötü bir soru olduğuna inanmıyorum. Eğer iyi bir sorunuz varsa sor ve ben – olyanren

+0

Hayır reddetme cevap. Soru olabilir, fena değil, ama sorma tarzı ..! – Mudassir

+0

@Mudassir bu doğru olabilir. Ama ben soru sormak sıkıcı olmadan daha basit kelimeler sormak istedim. – olyanren

cevap

6

Performans burada bir sorun değilse, tüm özellikleri bir sınıftan diğerine yansıtma kullanımıyla kopyalayabilirsiniz.

Kontrol bunu nasıl açıklıyor bu diğer soruya bu linki: kullanmadan BeanUtils olmadan

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

Bu, diğer bağlantı, size kodu verecektir:

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

ben Projelerimde her zaman bu tür işlevleri kullanırım. Gerçekten kullanışlı.

+0

Çok teşekkür ederim :) Bu ben – olyanren

+0

Jonathan için arıyorum, süper sınıf alanları BeanUtils ile kopyalamak mümkün mü? – Don