java关于引用的一个问题

代码如下:
class Node{
int data;
}
class A{
public Node l;
public void add(Node l){
Node s=new Node();
s.data=1;
l=s;
}
}
public class B{
public static void main(String[] args) {
A a=new A();
a.add(a.l);
System.out.println(a.l.data);
}
}
结果是空指针异常,想问add方法中l不是应该可以按引用传递指向s指向的对象吗,可是为什么会是空指针异常呢,求大神解释的明白一点,我是小白~~

3个回答

 public void add(Node l){
Node s=new Node();
s.data=1;
l=s; //局部变量l执行s对应的对象,但和类变量l以及外部传入的a.l没关系,只是局部变量的指向不同的对象了,原对象不做改变。
}

写的太怪,建议看看书上的实例,按照你的思路,add不需要设计为有参数的形式

l是空的,,你把a.l传进去报空不是正常的吗

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐