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指向的对象吗,可是为什么会是空指针异常呢,求大神解释的明白一点,我是小白~~

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

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

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