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) |
你能告诉我怎样才能解决这个错误?
-
如果您需要任何帮助,请附上SSCCE。没有SSCCE,我们做不了多少。谢谢。哦,并考虑将问题的标题更改为更具描述性的内容。
-
堆栈跟踪为您提供NullPointerException发生的确切行。你只需要明白为什么你得到它并修复它......
-
通过识别问题然后纠正已识别的问题来解决它。 NPE [应]仅在以下情况下发生:someNullExpression.someMember。也就是说,null值必须是自然发生的此异常的成员/方法的目标表达式。在发布的示例中,只有一个表达式可以满足此要求。 (提示:compiler变量评估为什么?)
-
伙计们,放松吧。他问的是什么是空指针异常。
-
@pst由于异常位于"AnotherClassLoader.loadClass"中,这是否意味着空指针更进一步下游?如果编译器为null,那么它就是main中的空指针异常。
-
@Jeremy这是test.java第58行的内容......我不认为一个真正的类加载器可以像这样抛出一个NPE,但我现在不
-
stackoverflow.com/questions/19234008/…
-
@SuppressWarnings("null") public void WelcomeToNPE_MethodLand() throws NullPointerException { Object NPE_Wisher = null; try { if (!"Java".equals(NPE_Wisher)) System.out.println("Am I executed....? - User"); if (NPE_Wisher.equals(null)) //Here NPE_Wisher object will call mrNPE_Obj System.out.println("Shall I good till here...!"); } catch (NullPointerException mrNPE_Obj) { System.out.println("You already had understand me... - NullPointerException
"); throw mrNPE_Obj; } }
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。