仅在通过后函数参数为NULL

时间:2019-06-26 19:20:00

标签: java vector null arguments

我有一个函数,将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。

谢谢你!

0 个答案:

没有答案