【发布时间】:2026-02-14 22:00:01
【问题描述】:
Object1.java:
public class Object1 {
public double[][] var1;
...
}
Object2.java:
public class Object2 {
public double[][] var2;
...
}
我想通过引用(浅拷贝)将 Object2.var2 复制到 Object1.var1。这是我正在尝试的方法,但不起作用:
Object1 object1 = new Object1();
object1.var1 = new double[2][];
System.arraycopy(object2.var2, 0, object1.var1, 0, object2.var2.length);
有人知道我哪里出错了吗?我收到java.lang.NullPointerException 编译错误。请注意,object2.var2 填充了数据。
更新 1:
注意 object2.var2 是一个 Nx2 矩阵,如下所示:
object2.var2[0][0]=1.232
object2.var2[0][1]=23.233
object2.var2[1][0]=3.23
object2.var2[1][1]=32.12
...
object2.var2[N][0]=3.23
object2.var2[N][1]=32.12
当我尝试以下操作时,我还会看到 java.lang.NullPointerException:
object1.var1=new double[object2.var2.length][2];
object1.var1=object2.var2;
【问题讨论】:
-
如果你想实际复制引用,你应该使用
public List<List<Double>> var = new ArrayList<ArrayList<Double>>();否则这是*.com/questions/10269018/…之类的复制品 -
"引用复制" != "浅拷贝"
-
好的,通过引用复制,然后。