考虑以下代码:
public class Test {
static private volatile Integer number1 = 42;
static private volatile Integer number2 = 42;
public static void main(String[] args) {
Test test = new Test();
test.changeInteger(number1);
System.out.println(number1);
}
public void changeInteger (Integer number) {
number = new Integer(3);
}
}
我想根据传递给方法
number1
的参数来更改number2
或changeInteger
的值。显然,这是行不通的。有没有一种方法可以使Java在不使用反射的情况下工作?澄清一下:我希望呼叫
changeInteger(number1)
更改字段number1
。 最佳答案
只是为了补充@Margus的答案。
在我的书中,如果变量名曾经包含数字,例如number1
,则表明您的操作不正确。使用数组。
另一方面,如果变量是实际命名的,则最好使用Hashtable
。
类中字段的名称应进行硬编码。如果您需要非硬编码的“字段名称”,那么它们并不是真正的字段。他们是数据!因此,哈希表/字典是Java中正确的路由。
关于java - 取消引用可能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25995362/