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

How to solve java.lang.NullPointerException error?

本问题已经有最佳答案,请猛点这里访问。

当我运行我的Java程序时,它在这一行上给我一个错误

compiler.getTask(null, null, new DiagnosticCollector(), null, null, compilationUnits);

我得到的错误是:

1
2
3
4
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意味着您传递的其中一个变量为null,但代码尝试使用它而不是它。

例如,如果我这样做:

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

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

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


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


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