有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如果链表中存储的对象不可克隆,如何创建链表的深度副本?

我有一个linkedlist,其中包含不可克隆的对象。深度复制列表最有效的方法是什么

我尝试过的是:

List<Ob> deepCopyListA = new LinkedList<Ob>(aList);

它似乎工作得很好,但我只是想知道它是否真的在深度复制整个列表,以及是否有更好的方法来做到这一点

*我不确定要发布什么代码,但基本上我有一个类,以及该类的多个实例,作为另一个类中的列表

private List<Ob> aList;

public List<Ob> getaList() {
    List<Ob> deepCopyListA = new LinkedList<Ob>(aList);
    return deepCopyListA;
}

共 (1) 个答案

  1. # 1 楼答案

    您可以使用直接但脆弱的方法,手动将每个属性从旧对象复制到新对象中。或者,您可以使用反射克隆对象(有一些库可以为您做到这一点)

    你可以在这篇文章中阅读更多关于各种方法和权衡的信息:Java: recommended solution for deep cloning/copying an instance