代码之家  ›  专栏  ›  技术社区  ›  Robert Lewis

制作盒装原语的深度副本

  •  0
  • Robert Lewis  · 技术社区  · 7 年前

    我正在尝试实现一个 .clone() 由多个“装箱”值组成的数据对象的方法( Float Boolean ).我的第一次尝试是:

    theClone.someNumber = someNumber; 
    

    但我觉得这只是复制对象引用。所以我试着:

    theClone.someNumber = new Float( someNumber ); 
    

    Android Studio不喜欢这样,并让我使用;

    theClone.someNumber = Float.valueOf( someNumber ); 
    

    所以我这么做了,但现在安卓工作室抱怨“已经装箱的‘someNumber’的装箱”。我做错什么了吗?我是否忽视了警告?是否有注释会抑制它?使用构造函数有什么问题?

    1 回复  |  直到 7 年前
        1
  •  0
  •   dinosaur    7 年前

    如果这是关于存储值,同时能够使用“原始值”,那么有几种可能性。 一种可能是简单地将“旧”值写入数组。

    public static void main(String[] args)
    {
    
       int value = 10;
       ArrayList<Integer> myList = new ArrayList<Integer>();
    
       myList.add(value);
    
       value = 15;
    
       System.out.println("Old value was: " + myList.get(0));
       System.out.println("But new value is: " + value);
    }
    

    如果这不符合你的需要,我需要更多的细节

    推荐文章