我知道这个问题已经解决了很多次 - 但我的Java/C++知识太弱了我几乎无法理解答案:-( ...我真正喜欢的只是一个非常简单的例子.
在C++中,我可以编写以下内容:
void func()
{
int x = 3;
add_one(x);
// now x is 4.
}
void add_one(int &var)
{
var++;
}
Run Code Online (Sandbox Code Playgroud)
我现在想看到的是用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]++;
}
Run Code Online (Sandbox Code Playgroud)
这里我使用数组,但包装器可以是任何对象.
| 归档时间: |
|
| 查看次数: |
9214 次 |
| 最近记录: |