좋아요,이 프로그램은 거의 끝났지 만, 지금은 분실했습니다. 나는 널 포인터를 돌려주고있다. (라인 44에 나온다. 그러나 그것은 단지 while 루프이다.) 나는 그것을 고치는데 도움이 필요하다. 연결된 목록을 사용하여 대기열을 구현하고 다른 두 클래스는 100 %를 전달하므로 최종 클래스 (CarQueue)는 Null 포인터를 만드는 문제가있는 곳입니다.내 대기열에있는 널 포인터
while (temp.getNext() != null) {
는 예외를 발생 라인이라면 (심지어 가능하다면 getNext()
는 NullPointerException
던지고, OR)
public class CarQueue<E> {
private LinkNode<E> head;
private LinkNode<E> tail;
public CarQueue() {
head = null;
tail = null;
}
public CarQueue(E newData) {
LinkNode<E> temp = new LinkNode<E>(newData, null);
head = temp;
tail = temp;
}
public void addToQueue(E newData) {
LinkNode<E> temp = new LinkNode<E>(newData, null);
if (empty() == false) {
tail.setNext(temp);
tail = temp;
} else {
head = temp;
tail.setNext(temp);
tail = temp;
}
}
public String toString() {
LinkNode<E> temp = head;
String cars = "";
while (temp.getNext() != null) {
cars += temp.toString() + '\n';
}
return cars;
}
public E removeFmQueue() {
LinkNode<E> headReturn = head;
head = head.getNext();
return headReturn.getData();
}
public LinkNode<E> peek() {
return head.getNext();
}
public boolean empty() {
if (head == null)
return true;
else
return false;
}
}
, 나는 머리가 네, 널 (null) 인 빈 생성자를 설정 들었다,하지만 내 두 번째 생성자 머리에 임시 노드의 값이어야합니다. 두 번째 생성자는 대기열에 하나의 요소가있는 것처럼 설정되므로 머리와 꼬리는 둘 다 temp입니다. 내 테스트에 따르면, (temp.getNext()! = null) getNext 괜찮아요 예외를 던지고있는 동안, 그것은 완벽하게 작동하고 모든 테스트를 통과 내 LinkNode 클래스에서 설치했다. 내가 왜 null을 정확히 얻고 있는지 확신 할 수 없다. 희망이 도움이 – user3466773