我一直在試圖編寫一個使用節點文件的隊列,而且我似乎無法弄清楚空指針異常是一個問題。我在網上看了一下,但我對Java太新了,我想知道我在找什麼。任何人都可以找到它,或者至少讓我走向正確的方向?隊列中的Java空指針異常
第一隊:
public class Queue extends CharNode {
public CharNode head;
public CharNode tail;
public Queue(){
this.head = null;
this.tail = null;}
public boolean isEmpty(){
return (head==null);}
public void enqueue(Character character){
if (isEmpty()){
head.character = character;
head.nextNode = tail;}
else {
CharNode oldTail = tail;
tail = new CharNode();
oldTail.character = character;
oldTail.nextNode = tail;
}
}
public Character dequeue(){
if (isEmpty()) throw new RuntimeException("Queue Empty");
head.character = character;
head = head.nextNode;
return character;
}
public static void main(String[] args){
Queue queue = new Queue();
queue.enqueue('a');
queue.enqueue('b');
System.out.print(queue.dequeue());
}
}
我CharNode文件看起來像:
public class CharNode {
public Character character;
public CharNode nextNode;
public void charNode(Character character){
this.character = character;
this.nextNode = null;
}
}
而例外,我收到的樣子:
Exception in thread "main" java.lang.NullPointerException
at Queue.enqueue(Queue.java:14)
at Queue.main(Queue.java:32)
首先,'Queue'不應該擴展'CharNode';那裏沒有* is-a *關係。 – chrylis
當然哦。謝謝。 – dawich77