gpt4 book ai didi

添加时克隆元素的Java列表

转载 作者:行者123 更新时间:2023-12-03 18:41:58 24 4
gpt4 key购买 nike

是否有实现 List 接口(interface)并在将元素添加到列表时克隆元素的 Java 类?这样做的目的是将此列表封装为一个对象。

当然,通过采用 ArrayList 并将其包装在另一个类中,然后在实现 add 和 get 方法时调用 clone 方法,自己编写一个很容易。但是,我想我会询问 Java 是否已经提供了这样一个类,并有可能为自己节省一些繁琐的编码。

最佳答案

我怀疑是否存在,原因如下:

  1. 应该如何列出克隆元素? Object.clone() 仅适用于实现了 @Cloneable 的类型;当它工作时,它只制作一个浅拷贝(例如,如果对象有一个 List 字段,它会克隆对列表对象的引用,而不是它的元素);打败它自己的目的。 Info about Java cloning problems .因此,要使克隆真正起作用,可克隆类型需要使用适当的实现覆盖 Object.clone()。这意味着您的“克隆列表”需要知道包含的类型是否正确地实现了 clone(),即使它成功地实现了它也只对一组非常有限的类型有用.
  2. 对于实际实现 clone() 的类型,执行 list.add(elem.clone()) 而不是 list.add 相当简单(元素)。带有第 1 点中提到的注意事项的全新类型的列表,只是为了让我们免于输入 8 个字符,这似乎不是一件非常有用的事情。

关于添加时克隆元素的Java列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56431218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com