Как решить ошибку 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)
Не могли бы вы рассказать мне, как я могу решить эту ошибку?
Ответы
Ответ 1
A NullPointerException означает, что одна из переменных, которые вы передаете, имеет значение null, но код пытается использовать ее, как будто это не так.
Например, если я это сделаю:
Integer myInteger = null;
int n = myInteger.intValue();
Код пытается захватить intValue myInteger, но поскольку он является нулевым, он не имеет одного: исключение нулевого указателя происходит.
Это означает, что ваш метод getTask ожидает чего-то, что не является нулевым, но вы передаете нуль. Посмотрите, что нужно getTask и передайте то, что он хочет!
Ответ 2
Эта ошибка возникает при попытке ссылаться на экземпляр нулевого объекта. Я не могу сказать вам, что вызывает эту ошибку по вашей информации, но вы можете легко ее отладить в своей среде IDE.
Я настоятельно рекомендую вам использовать обработку исключений, чтобы избежать неожиданного поведения программы.
Ответ 3
Просто снимок в темноте (так как вы не делили с нами код инициализации compiler
): способ получения compiler
вызывает проблему. Укажите, что JRE находится внутри JDK, так как в отличие от jdk, jre не предоставляет никаких инструментов, приводит к результатам NPE
.