Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理java.lang.nullpointerexception_Java_Exception_Nullpointerexception - Fatal编程技术网

如何处理java.lang.nullpointerexception

如何处理java.lang.nullpointerexception,java,exception,nullpointerexception,Java,Exception,Nullpointerexception,大家好,我真的被卡住了,我一直收到java.lang.NullPointerException。我试着在每一个可能的地方处理它,但我没有成功。这是家庭作业。如果您可以查看并给出一些关于java.lang.NullPointerException的反馈,那就太好了。 异常发生在Captain.handleProblem()和MalfuctionHandler.ProccessFunctional() 您从未初始化类SpaceMonkey中的故障处理程序对象,并尝试在handleProblem方法中

大家好,我真的被卡住了,我一直收到
java.lang.NullPointerException
。我试着在每一个可能的地方处理它,但我没有成功。这是家庭作业。如果您可以查看并给出一些关于
java.lang.NullPointerException
的反馈,那就太好了。 异常发生在
Captain.handleProblem()
MalfuctionHandler.ProccessFunctional()

您从未初始化类SpaceMonkey中的故障处理程序对象,并尝试在handleProblem方法中调用其getDescription()方法。在java中,对象的默认值为null,表示您的故障处理程序故障;此处为null,您正试图访问其null上的方法

由于故障处理程序是一个抽象类,请使用其子类(SpaceMonkey)初始化它


故障对象未初始化,它只是在船长类中声明。


此外,捕获NullPointerException也是不可取的。相反,您应该在代码中进行验证和检查,以便不会产生此类异常。

默认情况下,实例变量的对象类型为null

 MalfunctionHandler malfunction;

都是一样的。你们班有这个问题


这里
if(failure.getDescription()==null)
和failure为null,因此您在这里获得NPE。

您可以发布NPE的堆栈跟踪吗?发布您刚在Begging中得到的所有错误消息,在代码之前您从未在
Captain
类中初始化
FailureFunctionHandler-failure
,所以它是空的,并且
发生故障。getDescription()
将抛出一个NPE-您的代码中可能有其他NPE。@assylias。。您应该将其作为答案发布。@RohitJain MailfunctionHandler是一个抽象类而不是故障:)对不起,我的意思是
MailfunctionHandler
。故障是那个级别的参考。@RohitJain别担心,顺便说一句,你真是太棒了。。你的答案信息量很大……)但在我的代码中,它不是故障,而是故障处理器故障
 if(malfunction.getDescription() == null)
 MalfunctionHandler malfunction; = new SpaceMonkey(Severity);
 MalfunctionHandler malfunction;
 MalfunctionHandler malfunction = null;