【问题标题】:how to clone a Vector in codenameone如何在 codenameone 中克隆 Vector
【发布时间】:2021-11-11 20:04:57
【问题描述】:

我需要一个 Vector 的干净副本,而不是引用。

在 Swing 中,我使用 Vector.clone(); (在 codenmeone 中不允许抱怨其受保护。)

在 Codenameone 中,我尝试了 Vector someName = new Vector((Vector)anotherVector)

someName 成为对 anotherVector 所做更改的引用,someName 继承这些更改。

想法?

最好的问候

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    新的矢量方法有效,但它不是其中元素的深层副本。不幸的是,您无法进行深层复制,因为clone() 需要我们没有的反射。不幸的是,没有简单的答案。您需要逐个检查每个元素并创建该元素的副本,因为我们不能一般地复制它。

    这可以相对简单,假设MyObject 的向量有一个接受现有实例的构造函数,那么这样的事情就可以工作:

    Vector<MyObject> newVector = new Vector<>();
    for(MyObject obj : oldVector) {
        newVector.add(new MyObject(obj));
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-20
      • 2017-09-17
      • 2016-03-31
      • 2012-09-30
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多