如何解决java.lang.NullPointerException错误?

时间:2012-05-05 18:04:29

标签: java 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)

您能否告诉我如何解决此错误?

3 个答案:

答案 0 :(得分:80)

NullPointerException意味着您传递的其中一个变量为null,但代码尝试使用它而不是它。

例如,如果我这样做:

Integer myInteger = null;
int n = myInteger.intValue();

代码尝试获取myInteger的intValue,但由于它为null,因此它没有:发生空指针异常。

这意味着你的getTask方法期望某些东西不是null,但你传递的是null。弄清楚getTask需要什么并传递它想要的东西!

答案 1 :(得分:7)

当您尝试引用空对象实例时,会发生此错误。我无法通过您的给定信息告诉您导致此错误的原因,但您可以在IDE中轻松调试它。 我强烈建议您使用异常处理来避免意外的程序行为。

答案 2 :(得分:2)

只是在黑暗中拍摄(因为您没有与我们共享compiler初始化代码):您检索compiler的方式会导致问题。将JRE指向JDK中,与jdk不同,jre不提供任何工具,因此导致NPE