Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果链表中存储的对象不可克隆,如何创建链表的深度副本?_Java_Linked List_Deep Copy_Cloneable - Fatal编程技术网

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

Java 如果链表中存储的对象不可克隆,如何创建链表的深度副本?,java,linked-list,deep-copy,cloneable,Java,Linked List,Deep Copy,Cloneable,我有一个linkedlist,其中包含不可克隆的对象。深度复制列表最有效的方法是什么 我尝试的是: List<Ob> deepCopyListA = new LinkedList<Ob>(aList); List deepCopyListA=newlinkedlist(列表); 它似乎工作得很好,但我只是想知道它是否真的在深度复制整个列表,以及是否有更好的方法来做到这一点 *我不确定要发布什么代码,但基本上我有一个类,并且在另一个类中有许多类的实例作为列表 priva

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

我尝试的是:

List<Ob> deepCopyListA = new LinkedList<Ob>(aList);
List deepCopyListA=newlinkedlist(列表);
它似乎工作得很好,但我只是想知道它是否真的在深度复制整个列表,以及是否有更好的方法来做到这一点

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

private List<Ob> aList;

public List<Ob> getaList() {
    List<Ob> deepCopyListA = new LinkedList<Ob>(aList);
    return deepCopyListA;
}
私有列表列表列表;
公共列表getaList(){
List deepCopyListA=新链接列表(列表);
返回deepCopyListA;
}

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


你可以在这篇文章中阅读更多关于各种方法和权衡的信息:

你能发布你的代码吗?@Woody我已经发布了更多的解释。希望这能让我的问题更清楚一点你说的“可克隆”是什么意思?在Java中没有克隆对象的通用方法。