2014-04-08 31 views
0

我有一个基类A和派生类B。 如何将...复制到一个简单的行中...将类型为A的对象的字段复制到B类型的对象中? 我有一个方法,如果有帮助,可以从字段值构建对象。 我不想使用任何类型的反射!如何将字段从基类复制到dervived类?

class A{ 
    String id; //and setter/getter 
} 
class B extends A{ 
    String b; //and setter/getter 
} 
public A buildA(String id){ 
    A=new A(); 
    a.setId(id); 
    return A(); 
} 
// how to copy A=buildA("a") into a B type of object... 
// I would avoid doing 
//public B voidB(String id, string b){ 
B=new B(); 
b.setId(
b.setB... 
// Remark - I cannot do the init from constructor with fields! 
+0

您只需要'B'类中的复制方法,它从'A'复制值:'public void copy(final A a)'。然后,只需在'B'里面写出所有的复制方法,你就可以调用'B b; A;',init'A'和'B',只要你想将'A'拷贝到'B'中,就调用'b.copy(a);'。 – Jared

+0

为什么你不在构造函数中进行复制? – markusw

+0

为什么?为什么你想要两次相同的数据? – EJP

回答

1

有一个叫Dozer库,它可以帮助你(我还没有尝试过,虽然)。

0

这是你在找什么,或者我在错误的轨道上?

public B buildB(A a,String str){ 
b=new B(); 
b.setId(a.getId()); 
b.setB(str); 
return B; 
} 
+0

这就是我想要的地方,但以一种时尚的方式:) – Roxana

+0

在构造函数中进行复制!纯粹的Java没有其他的方式 – markusw

+0

@Roxana .. markusw是正确的,要么我写或复制的构造方式只有两种方式来做到这一点(根据我的知识)...时尚的方式不应该是一个借口拒绝解决方案。 :/ –

相关问题