它说 NullPointerException 即使我的 String s 有一个存储的文本

问题描述

如果我使用 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 - 在你的情况下)。这假设“名称”是“节点”类的一个字段。