我知道这个问题已经解决了很多次-但是我的Java/C++知识非常薄弱,我几乎无法理解答案:-( ...我真正想要的只是一个非常简单的示例。
在C++中,我可以编写以下代码:
void func()
{
int x = 3;
add_one(x);
// now x is 4.
}
void add_one(int &var)
{
var++;
}
我现在想看到的是用java实现相同效果的最简单方法。
最佳答案
你不能直接。您可以得到的最接近的结果是将值放在对象中,然后将引用(按值,因此引用将被复制)传递到方法中。
void func()
{
int x = 3;
int[] holder = [x];
add_one(holder);
// now holder[0] is 4. x is still 3.
}
// container here is a copy of the reference holder in the calling scope.
// both container and holder point to the same underlying array object
void add_one(int[] container)
{
container[0]++;
}
在这里,我使用一个数组,但是包装器可以是任何对象。