Я новичок в java.почему этот код имеет NullPointerException в java?
В следующем коде NullPointerException
, я действительно не знаю, что происходит. Похоже, я пытался получить доступ к нулевому указателю. Но я понятия не имею, где я обращаюсь к нулевому указателю. (Если это часть «головного узла», я не использовал свой объектный слот в этом коде, я думаю.)
Большое спасибо!
class Deque<Base>
{
private class Node
{
private Base object;
private Node right; //point to the front Node
private Node left; //Point to the rear Node
//Constrcutor for Node
private Node(Base object, Node left, Node right)
{
this.object = object;
this.left = left;
this.right = right;
}
}
private Node head;
//Constructor for Deque
public Deque()
{
head = new Node(null,head,head);
}
//--------------------------------------
public void enqueueFront(Base object)
{
head.right = new Node(object, head, head.right);
head.right.right.left = head.right;
//Node temp = head.right;
//temp.left = head.right.right;
}
//--------------------------------------------
public void enqueueRear(Base object)
{
//Node temp = head.left;
head.left = new Node(object, head.left, head);
//temp.right = head.left;
head.left.left.right = head.left;
}
//------------------------------------------------
public Base dequeueFront()
{
if (isEmpty())
{
throw new IllegalStateException();
}
else
{
Base a = head.right.object;
Node temp = head.right.right;
temp.left = head;
head.right = temp;
return a;
}
}
//---------------------------------------------------
public Base dequeueRear()
{
if (isEmpty())
{
throw new IllegalStateException();
}
else
{
Base b = head.left.object;
Node temp = head.left.left;
temp.right = head;
head.left = temp;
return b;
}
}
//----------------------------------------------------
public boolean isEmpty()
{
return ((head.left == head)&&(head.right == head));
}
}
class Driver10
{
public static void main(String [] args)
{
Deque<Integer> a = new Deque<Integer>();
//int temp;
//a.dequeueFront();
a.enqueueFront(2);
//a.enqueueFront(3);
//a.enqueueFront(4);
//a.enqueueRear(6);
//a.enqueueRear(7);
//front: 4,3,2
//rear: 7,6
//temp = a.dequeueRear();
// System.out.println(temp); // 7
//System.out.println(a.dequeueRear()); // 6
//System.out.println(a.dequeueRear()); // 2
//System.out.println(a.dequeueFront()); //4
//System.out.println(a.dequeueRear()); // 3
//a.dequeueRear();
}
}
Любой информации о том, где происходит NullPointerException? Любой журнал? – NSimon
Вам необходимо предоставить трассировку стека. – Vipin