【发布时间】:2017-06-10 23:53:15
【问题描述】:
当我尝试使用 InsertFront() 方法添加对象时,我收到了 NullPointerException。 DList 代码为:
public class DList {
protected DListNode head;
protected int size;
protected DListNode newNode(Object item, DListNode prev, DListNode next) {
return new DListNode(item, prev, next);
}
public DList() {
head=newNode(null,head,head);
size=0;
}
public void insertFront(Object item) {
head.next.prev=newNode(item, head, head.next);
head.next=head.next.prev;
size++;
}
但是,一旦我将 DList 构造函数更改为以下内容,此错误就不再出现:
public DList() {
head=newNode(null,head,head);
head.prev=head;
head.next=head;
size=0;
}
现在,我明白分配 head.next 和 head.prev 值解决了问题;但是当我已经将“head”变量分配为构造函数第一行中的上一个和下一个节点时,我不明白需要单独说明这一点:
head=newNode(null,head,head);
请解释一下。
【问题讨论】:
标签: java list data-structures collections nullpointerexception