Date
为什么我不能在上面的代码中更改对象“num”的值?如何修改它以实现操作。
答案 0 :(得分:3)
public void change(Integer n) {
n = null;
}
n
是本地变量。
将其更改为num = null
如果要将num
的值设为null(正如您在注释中所述),则无需将任何内容作为参数传递。这样做。
public void makeNull() { //or call it setNull
num = null;
}
另外,不要公开num
。把它私有化。这是一个很好的做法(除非你有充分的理由,否则必须遵循一个IMO)
答案 1 :(得分:0)
除了其他答案中提供的内容之外,Java是按值传递的。当您使用原始变量作为参数调用函数时,被调用函数将使用其自己的变量本地副本作为参数。它只会提取该变量的值。对被调用函数中参数变量的更改不会影响原始变量。