在print语句中获取NullPointerException错误,它正在打印我在驱动程序中输入和需要的所有内容。但是紧接着它会导致NullPointException错误。我需要这个来工作,由于这个错误,我以后无法再使用其他任何方法。
我对此tmr进行了测试,不知道为什么会导致此异常错误。请帮忙!谢谢。
我尝试过的事情:
import java.util.Scanner;
import java.util.*;
import java.io.*;
public class StringNode
{
//attributes
private String data;
private StringNode link;
//nodes counter
int numNodes =0;
Scanner kb = new Scanner(System.in);
//constructor
public StringNode(String iData, StringNode iLink)
{
data = iData;
link = iLink;
}
//create empty list
StringNode list = null;
//*********Create method: addToFrontFILI
public void addToFrontBM(String newN)
{
list = new StringNode(newN, list);
System.out.println("A node has been added to the front.");
numNodes++;
System.out.println("NumNodes:" +numNodes);
}
//---------------------Works but causes Nullpointer Exception------------
//Create method: printLLFILI
public void printLLBM()
{
StringNode tptr = list;
while(tptr.link != list)
{
System.out.println(tptr.data);
tptr = tptr.link;
}
System.out.println(tptr.data);
}
答案 0 :(得分:0)
tptr = tptr.link;
,此行会将最后一个null
元素分配给tptr
,但是while
仅检查tptr.link
,这将导致NullPointerException。将代码更新为:
while( tptr != null && tptr.link != list)
答案 1 :(得分:0)
检查下面的代码,当tptr
为空时,您什么也没有做;当tptr
为空时,将发生NPE。
while(tptr.link != list)
{
System.out.println(tptr.data);
tptr = tptr.link;
}
您可以更改为以下内容:
while(tptr!=null && tptr.link != list)
{
System.out.println(tptr.data);
tptr = tptr.link;
}