如何解决java.lang.NullPointerException错误?
当我运行我的Java程序时,它给我一个这条线上的错误
compiler.getTask(null, null, new DiagnosticCollector<JavaFileObject>(), null, null, compilationUnits);
我得到的错误是:
Exception in thread "main" java.lang.NullPointerException at AnotherClassLoader.loadClass(test.java:58) at test.main(test.java:30) at Main.main(Main.java:68)
你能告诉我怎么解决这个错误?
NullPointerException意味着你正在传递的variables之一是null,但是代码尝试使用它,就像它不是。
例如,如果我这样做:
Integer myInteger = null; int n = myInteger.intValue();
该代码试图抓住myInteger的intValue,但由于它是空的,它没有一个:空指针exception发生。
这意味着你的getTask方法期望的东西不是null,但是你传递一个null。 找出getTask需要什么,并通过它想要的!
当您尝试引用空对象实例时,会发生此错误。 我不能告诉你由于给定的信息导致这个错误的原因,但是你可以在IDE中轻松地debugging它。 我强烈build议您使用exception处理来避免意外的程序行为。
只是在黑暗中拍摄(因为您没有与我们分享compiler
初始化代码):您检索compiler
的方式导致问题。 将JRE指向JDK内部,与jdk不同,因此jre不提供任何工具,因此导致NPE
。