Java 找不到局部变量,它是公共类
我在运行单元测试时遇到空指针异常,因为这行代码:Java 找不到局部变量,它是公共类,java,unit-testing,nullpointerexception,static-methods,cannot-find-symbol,Java,Unit Testing,Nullpointerexception,Static Methods,Cannot Find Symbol,我在运行单元测试时遇到空指针异常,因为这行代码: ClassA.getInstance().getActive(); 上面这一行是在测试调用的其他公共抽象类中编写的 这里,ClassA是在测试文件的同一个包中定义的公共类,getInstance()是在ClassA中定义的公共静态方法。在调试模式下运行时,我可以看到 “找不到局部变量'ClassA'” ClassA出错,因此getInstance()为null 抱歉没有发布完整代码,因为这违反了我公司的政策。请检查ClassA。getInsta
ClassA.getInstance().getActive();
上面这一行是在测试调用的其他公共抽象类中编写的
这里,ClassA
是在测试文件的同一个包中定义的公共类,getInstance()
是在ClassA
中定义的公共静态方法。在调试模式下运行时,我可以看到
“找不到局部变量'ClassA'”
ClassA
出错,因此getInstance()
为null
抱歉没有发布完整代码,因为这违反了我公司的政策。请检查ClassA。getInstance()是否返回任何对象?或空值 在您的代码中是ClassA.getInstance().getActive();这意味着->getInstance()返回某个对象,请检查它是返回对象还是null
我认为获取null是获取null指针异常的原因。尝试使用“static”字生成对象 祝你好运
G.如果你不能发布准确的代码,你能不能发布一个我们可以运行的模拟版本,它也有同样的问题?(见:)你的问题毫无意义。首先,当你说“ClassA是一个公共方法”时,你的意思是“ClassA是一个公共类”吗?其次,如果编译器找不到变量,那是编译错误,而不是NullPointerException。也许您的测试没有运行您认为它正在运行的代码?您导入了它吗?如何声明字段
m_instance
?您是否真的将其初始化为newclassa()
?您可能应该更新您的问题,您的注释中有大量新信息。在我看来,ClassA是一个单例,有几种方法可以实现其中一种,但解决空指针问题的一种方法是直接初始化m_实例
,private static ClassA m_pointer=new ClassA()代码>