我很困惑为什么以下代码不会更改节点 a 的数据:
public class Node{Node next; int data;}
public static void change(Node a)
{
a = a.next;
}
public static void main(String [] args){
Node a = new Node();
Node b = new Node();
a.next = b;
a.data = 1;
b.next = null;
b.data = 2;
change(a);
System.out.print(a.data); //Still 1, why isn't it changed to 2?
}
既然 Node 是一个对象,那么它的引用不是按值传递给方法的吗?这意味着对传入的节点所做的任何更改实际上都应该更改节点?