Java 双链表-添加方法get NPE

Java 双链表-添加方法get NPE,java,doubly-linked-list,Java,Doubly Linked List,我在添加到空列表时得到一个NPE。不过,我看不出有什么不对。我已经初始化了head=null和tail=null,然后我检查head==null,那么列表必须为空,所以添加到head。因为它是列表中唯一的节点,所以它的next和prev必须指向null,head=newnode,tail=newnode。对吧 public AddressList() { head = null; tail = null; } public void addEntry(String fir

我在添加到空列表时得到一个NPE。不过,我看不出有什么不对。我已经初始化了head=null和tail=null,然后我检查head==null,那么列表必须为空,所以添加到head。因为它是列表中唯一的节点,所以它的next和prev必须指向null,head=newnode,tail=newnode。对吧

    public AddressList() {
    head = null;
    tail = null;
}
public void addEntry(String firstName, String lastName, String phoneNum, String email) {

    EntryNode n = new EntryNode();

    if (head == null) {
        System.out.println("List is empty ");
        n.setNext(null);
        n.setPrev(null);
        tail = n;
        head = n;
    }
    else {
        //add to the head
        head.setPrev(n);
        n.setNext(head);
        head = n;
    }
    n.setFirstName(firstName);
    n.setLastName(lastName);
    n.setPhoneNum(phoneNum);
    n.setEmail(email);

    size++;
}

你的异常被抛出在哪里?你能展示一下EntryNode吗?Yikes,刚刚意识到它被抛出在一个完全不同的地方。我想要一个字符串的开关大小写,所以我用枚举实现了它,但它似乎有点古怪?看起来您的问题不在该方法中。@JackieAldama Switch-on-Strings已在Java 7中引入,如果您可以使用该版本的话。