修复队列中的java.lang.NullPointerException错误

修复队列中的java.lang.NullPointerException错误,java,pointers,queue,Java,Pointers,Queue,因此,我用Java实现了一个队列,并试图实现一个在队列末尾插入元素的过程。但我收到一条错误消息“Java.lang.NullPointerException”。我对这一点不熟悉,不知道这意味着什么,也不知道如何修复它 class Node { public int ielement; public String selement; public Node next; public Node(int iel, String sel) { ielement = iel;

因此,我用Java实现了一个队列,并试图实现一个在队列末尾插入元素的过程。但我收到一条错误消息“Java.lang.NullPointerException”。我对这一点不熟悉,不知道这意味着什么,也不知道如何修复它

class Node {

public int ielement;
public String selement;
public Node next;




public Node(int iel, String sel) {

    ielement = iel;
    selement = sel;
}
class Implement {


private Node head;
private Node tail;

 public Implement() {
    head = null;
    tail=null;
}
public void InsertAtTheEnd(int iel, String sel){
    Node newNode=new Node(iel,sel);
    if(!Empty())//if the queue is empty{
    tail.next=newNode;
    tail=newNode;}
    else{
    newNode.next=head;
    head=newNode;
        }

}

   public static void main(String[] args) {

   Implement k = new Implement();
   k.InsertAtTheEnd(1, "b");
   k.InsertAtTheEnd(3, "bes");
   k.InsertAtTheEnd(4, "kes");}

您从不初始化
尾部
。如果队列不是空的,
tail.next
应该指向新创建的节点,正如您所做的那样。如果是,则头和尾都应该指向新添加的节点

public void insertAtTheEnd (int iel, String sel) {
    Node newNode = new Node(iel,sel);
    if (!empty()) {
        tail.next = newNode;
        tail = newNode;
    } else {
        head = newNode;
        tail = newNode;
    }
}