当前位置: 首页 > 知识库问答 >
问题:

具有相同字段的不同类名之间的深度复制

翟承志
2023-03-14

我有两个名为Site和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,我有两个对象字段列表。两个对象也一样,只有Site和AmsSite对象。有相同的字段名,但不同的类名。

BeanUtils.copy属性是将所有文字字段值从AppSite正确复制到Site,但不是内部对象。(我的意思是深度复制不会发生)。我在apache中看到了深度复制的erialization.clone普通lang作品,但只有当我们有相同的类名时才有效。我的情况有点不同,相同的字段名但不同的类名。

共有1个答案

楚举
2023-03-14

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

如果你有很多这样类型的对象,你可能需要考虑重组你的对象以适应一个更简单的模式。

 类似资料:
  • 问题内容: 我今天在另一个问题中提出了这个问题,但是 由于措辞的方式,恐怕无法解决任何问题。 我有一个json输入,其中包含以下数据: 杰森 如您所见,option_value项是一个对象中的Array和 另一个对象中的简单字符串。 我怎样才能让Gson正确处理呢?我的类将此描述为 List对象,因此它适用于option_value是 数组的前几个项目,但是当它成为字符串时,应用程序崩溃,并且我收

  • 我对使用Jackson还是个新手,我正在尝试遵循我的团队的模式来反序列化我们的JSON。现在我遇到了一个问题,当一个字段名与JSON属性不匹配时。 工作示例: 如果JSON属性是hasProfile,它工作得很好,但是如果是has_profile(这是我们的客户端正在编写的内容),它就不工作了,并且我得到一个错误:。我尝试向hasProfile添加JsonProperty注释,但仍然不起作用: 我

  • 我使用的是,我需要展平包含同名字段的文档。 我创建的文档如下所示: 在那之后,我试图像下面这样压平文档: 我的主要方法是: 展平后,我得到的文档包含一个展平字段,但我必须得到两个展平字段。 如何解决此问题?

  • 我有从2个表中检索2个对象(由JooQ生成的POJO)的一条记录的代码。 表ISSUE和表CLIENT都有PK字段“ID”。 问题是当映射到(POJO.class)时,具有相同名称的表字段没有正确映射到POJO。在上面的示例中,jIssue获取jClient的id。 当使用TableRecords而不是POJO的所有映射都正确完成时,但您不能在生成的DAO中使用TableRecords,它需要生成

  • 我用的是spring soap ws。 我有以下对应于复杂类型的JAXB域类 我有以下带有@XmlRegistry注释的类 以下是endpoint 当我发出 Soap 请求时,我正在使用 soap 请求中的终结点中给出NAMESPACE_URI。 在这里,在这种情况下,我得到以下回应 如果我使用"超文本传输协议://命名空间/url"作为NAMESPACE_URI在endpoint和肥皂请求我得到

  • 我有两个java类如下 现在我有了一个A级对象Aobj,两个字段都已初始化。我用的是小豆子。copyProperties(Bobj,Aobj),但只有字段值被复制到Bobj中。名称列表为空。有没有办法深度复制一个对象,以便它复制所有字段,包括列表、地图等集合。 我在某个地方听说了推土机,不确定这是否是为了这个目的。