我有一个函数,将3个参数传递给另一个函数:n1,n2和n3。 n2和n3是基本整数,而n1是我的向量类的实例,该向量类由位置x,y和z组成。
当我初始化3D向量的实例时,我能够输出对象并查看其组成部分(暗示不为null)。但是,一旦将对象传递给另一个函数,接收到的参数是否为null?
为简单起见:
这是我的向量类:
public class Vector3D {
private int x, y, z;
public Vector3D(int x, int y, int z){
this.x = x;
this.y = y;
this.z = z;
}
}
这是我的两个功能
public class SomeClass {
private Vector3D location;
public function1(int v1, int v2){ // v1 and v2 are not null
Vector3D location = new Vector3D(1, 2, 3);
function2(location, v1, v2);
}
private function2(Vector3D location, v1, v2){
this.location = location; //null exception thrown
}
}
使用调试器,我可以在function1()中看到矢量对象已正确实例化,并且组件(x,y,z)不为null,但是一旦我进入到function2(),即第一个参数(Vector3D位置对象)为null。
在真实的代码中,function1()和function2()的作用更多,但我对其进行了简化,并简化为重要的内容:为什么它为null。
谢谢你!