好吧,这绝对是一个n00b问题,但在这里。在方法内改变类成员?
我的理解是,Java中的对象是通过值传递的,而不是引用。那么你怎样通过将方法的引用传递给方法来改变方法中的类成员呢?
我知道这是可以做到的,因为该方法getRotationMatrix做它...即如果我写在类级别以下:
private float rotationMatrix[] = new float[9];
,然后在方法中我称之为:
SensorManager.getRotationMatrix(rotationMatrix, inclinationMatrix, gData, mData);
它会改变rotationMatrix。我的问题是,如果一切都按值传递,那么该方法如何改变我传递的对象中的内容?
我问的原因是我试图写一个方法,做同样的事情,但不断运行到传递值的难题。我试图通过传递一个方法来初始化一个FloatBuffer。
你有它向后。 Java中的对象总是按引用传递,并且基元总是按值传递。 – Maxpm
对该对象的引用是按值传递的......这就是为什么在将对象传递给方法时交换不起作用,即使您正在尝试交换对象。 http://www.javaworld.com/javaqa/2000-05/03-qa-0526-pass.html – Joey
@Joey +1的准确性和链接 – alfasin