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()