问题描述
如果我使用 l.search("Hi");代码运行良好,但如果我将 String s 传递给 search 方法,它会提示错误 NullPointerException
System.out.print("Search: ");
String s = scan.next();
l.search(s);
public void search(String name){
Node current = tail;
while(current != null && current.name != name){
current = current.prevIoUs;
}
if(current.name == name){
System.out.println("Item found.");
}
}
解决方法
这里有几个问题。当您尝试引用不存在的对象时,会发生空指针异常。如果“s”没有被初始化,引用它会导致空指针异常。
要比较字符串,请使用 myFirstString.equals(stringComparingTo) 之类的方法,它返回一个整数。如果我记得当两个字符串相等时这等于零(或 current.name.equals(name)==0 - 在你的情况下)。这假设“名称”是“节点”类的一个字段。