如何在Java中将公共静态变量作为参数接受

3
我有以下实例化变量。
 public static int r1 = 10;

我有几个变量r1 - r4,我想编写一个方法,能够将变量r1作为方法的参数并进行递增。

伪代码如下:

r1 = r1 + 1;

我的问题是如何将变量作为一个方法的参数,而不是写4个不同的方法来完成这个任务?

不要写四个不同的方法来完成这个任务,四个方法从哪里来的? - Tim Biegeleisen
为什么不在方法内部直接使用 YourClassName.r1 呢?你不需要传递参数来访问 public static 变量。 - user2575725
1个回答

4

由于Java不允许通过引用传递基本类型的变量,因此您无法这样做。

您可以将变量放入数组中,并传递一个数组和一个索引:

public static int[] r = new int[4];
...
public static void modify(int[] array, int pos) {
    array[pos]++;
}
...
modify(MyClass.r, 1); // instead of modify(MyClass.r1);

另一种方法是将修改后的值返回给调用者,并让他们重新赋值:

public static int modify(int orig) {
    return orig+1;
}
...
MyClass.r1 = modify(MyClass.r1);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接