我可以以某種方式將所有字段值從一個對象移動到另一個對象而不使用使用反射?所以,我想要做的是這樣的:將所有字段從一個對象移動到另一個對象
public class BetterThing extends Thing implements IBetterObject {
public BetterThing(Thing t) {
super();
t.evolve(this);
}
}
因此,evolve
方法將演變一類到另一個。一個參數將是<? extends <? extends T>>
其中T
是對象的類,您打電話evolve
。
我知道我可以用反射做到這一點,但反射會傷害到性能。在這種情況下,Thing
類在外部API中,並且沒有方法可以將所有必需的字段從它複製到另一個對象。
您的選擇是(a)反思或(b)明確的成員分配。 –
...或從繼承切換到組合。 – aioobe
如果你說Thing在外部API中,我猜它裏面沒有進化方法。 – AdamSkywalker