所以我当前的代码是:
int x = 5;
int[] one = new int[1];
one[0] = x;
int[] two = new int[1];
two[0] = x;
x = 10;
System.out.println(one[0]);
System.out.println(two[0]);
这里的目标是获得两个 10 的输出。相反,我得到的是打印的两个5。
我知道在C++有一种方法可以说&x来引用引用类型,但是我不知道Java中有什么类似的东西?
如果有人能在这里帮助我,我将不胜感激。
编辑
干杯伙计们。我最终创建了自己的类并使用它。
class Ideone {
public static void main (String[] args) throws java.lang.Exception
{
MyTester x = new MyTester();
x.i = 5;
MyTester[] one = new MyTester[1];
one[0] = x;
MyTester[] two = new MyTester[1];
two[0] = x;
x.i = 10;
System.out.println(one[0].i);
System.out.println(two[0].i);
}
}
class MyTester
{
public MyTester() {}
public int i;
}
不,不行。 你能做的最接近的事情是说one = two
,然后one[0] = 10
,然后two
会指向与one
相同的数组并反映更改。
但是,您不能仅使用裸露的原始人做这样的事情。
它无法按预期工作,因为它是按值调用的。有一篇很好的老文章,有很多很好的例子可以阅读:Java是"按引用传递"还是"按值传递"?