Java 试图传递参数并打印时出现空指针异常
我从main中的一个文件中读取,在main中我将记号存储为变量,然后将其传递给linkedList.insertNode(),然后将其传递给Node类并设置值,当我调用linkedList.printAll()时;从main我得到一个NULLPOINTEREXCEPTION,我不明白为什么。我不是在打印刻度值吗? 列表片段Java 试图传递参数并打印时出现空指针异常,java,Java,我从main中的一个文件中读取,在main中我将记号存储为变量,然后将其传递给linkedList.insertNode(),然后将其传递给Node类并设置值,当我调用linkedList.printAll()时;从main我得到一个NULLPOINTEREXCEPTION,我不明白为什么。我不是在打印刻度值吗? 列表片段 class List{ private Node ptr; private int ticks; private int jobId; private String
class List{
private Node ptr;
private int ticks;
private int jobId;
private String name;
public List(){
ptr = null;
}
public void insertNode(int t,int j, String name){
Node node = new Node(t,j,name);
if(ptr == null){
node.next = node;
node.prev = node;
}//end if
public void printAll(){
System.out.format("%d",ptr.getTicks());
}
节点Spippet
class Node{
private int ticks;
private int jobId;
private String name;
Node next;
Node prev;
public Node(int t,int j, String name){
this.ticks = t;
this.jobId = j;
this.name = name;
setNext(null);
}
主(代码段)
ptr
从未分配,因此它保持为空
因此System.out.format(“%d”,ptr.getTicks())代码>抛出NullPointerException
您的insertNode
代码毫无意义。您将创建一个指向自身的新节点,并且该节点从未连接到列表
可能应该是这样的:
public void insertNode(int t,int j, String name){
Node node = new Node(t,j,name);
if(ptr == null){
ptr = node;
} else {
node.next = ptr;
ptr.prev = node;
ptr = node;
}
您没有在ptr
中辅助任何内容。我认为你需要这样做
if(ptr == null){
ptr = node;
}else {
//append this node to the ptr
node.next = ptr;
ptr.prev = node;
ptr = node;
}
所以在这一点上我打印空。。。
if(ptr == null){
ptr = node;
}else {
//append this node to the ptr
node.next = ptr;
ptr.prev = node;
ptr = node;
}