具有相同字段+ Java的不同类名之间的深层复制

时间:2016-05-23 21:10:12

标签: java spring apache serialization javabeans

我有两个名称为网站 AppSite 的对象,两者都有如下所示的相同字段。是否有任何util类可以将所有字段从 AppSite 复制到站点,例如BeanUtils.copyProperties。

public class AmsSite implements Serializable{
    private long siteId;
    private String name;
    private String routingId;
    private String siteType;

    private List<AmsPlatform> platforms;
    private List<AmsProvider> providers;

public class Site implements Serializable{
    private long siteId;
    private String name;
    private String routingId;
    private String siteType;

    private List<Platform> platforms;
    private List<Provider> providers;

如果你在上面看到两个pojo,我有两个对象字段列表。该对象也仅与站点 AmsSite 对象相同。具有相同的字段名称但具有不同的类名。

BeanUtils.copyProperties正在将所有文字字段值从AppSite正确复制到Site,但不是内部对象。 (我的意思是没有发生深拷贝)。我在apache常见的lang中看到了Serialization.clone用于深层复制,但只有在我们有相同的类名时才有效。我的情况与字段名称有所不同,但是类名不同。

1 个答案:

答案 0 :(得分:0)

您可以尝试像Orika这样的对象映射器,但我不确定它是否适用于内部类。

如果您有很多这类对象,您可能需要考虑重构对象以适应更简单的模式。