如何在Java中将一个对象或变量的地址存储在另一个对象中。就像我们在C ++中一样
int a =& b; // b也是int
如果我想通过Java中的引用将引用类型对象传递给任何方法,我怎么能这样做,默认情况下它们是按值传递的。
答案 0 :(得分:5)
最接近的是创建自己的通用可变包装类型,或使用长度为1的数组。包装器方法使您更清楚自己所做的事情,但效率较低。如果需要,可以使用AtomicReference<V>
作为包装类型,尽管使用意味着您可能不关注并发性。
对于基本类型的包装器,您可以使用Integer
,Long
等类,也可以为每个基元编写单独的特定包装类型。 (同样,后者会更有效率。)
但从根本上说,您应该尝试来设计您的代码而不需要它。我非常很少发现它是一种有用的技术。如果你发现自己经常想要这样做,你可能会用另一种语言“思考”......
答案 1 :(得分:0)
您不能在Java中使用地址。根本没有这样的能力。所有的东西都是按价值传递的。当你想传递一个要变异的对象时,你有几种方法:
a)传递数组:
int [] valueArray = new int[1];
valueArray[0] = <your value>;
b)传递一个可变的包装器,你可以自己写一个。
c)传递输入int并返回一个新值:
int a = 5;
a = sqr(a);
答案 2 :(得分:0)
从C ++到java有所不同。即使在java中使用Object的地址不是一个好习惯,也有办法获取逻辑地址。
http://javapapers.com/core-java/address-of-a-java-object/
我希望这会对你有所帮助。