#java #nullpointerexception
#java #исключение nullpointerexception
Вопрос:
Я читаю текстовый файл (который всегда состоит только из одной строки). Возьмите это и добавьте в MoviesTextArea.
Я уже пробовал перемещать переменную оператора.
public static void viewMovies() throws Exception {
File file = new File("MovieStorage.txt");
FileReader fileReader = new FileReader(file);
BufferedReader reader = new BufferedReader(fileReader);
String statement = "";
while ((statement = reader.readLine()) != null) {
System.out.println(statement);
MoviesTextArea.append(statement);
}
reader.close();
}
трассировка стека:
at MovieShower.viewMovies(MovieShower.java:34)
at Window1$3.actionPerformed(Window1.java:74)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Добавлена трассировка стека в соответствии с запросом.
Я бы ожидал, что строка инструкции будет добавлена!
Комментарии:
1. У вас есть
nullpointerexception
тег … это та ошибка, которую вы получаете?2. Моя ошибка «java.lang. Исключение NullPointerException»…
3. Что такое null? Какая переменная в какой строке?
4. инструкция в строке «MoviesTextArea.append(инструкция)». Но если я напечатаю инструкцию, я увижу, что это не nul…
5. Это говорит о том, что MoviesTextArea равно нулю? В вашем коде не показано, где это инициализировано, и, основываясь на вашем форматировании кода, это больше похоже на имя класса, чем на имя переменной. Можете ли вы включить трассировку стека в свой вопрос?
Ответ №1:
Ваш код даже не должен компилироваться — MoviesTextArea не определен в опубликованном вами фрагменте — но он в значительной степени должен быть нулевым, как сказал @Luke.
Кроме того, MoviesTextArea начинается с заглавной буквы, поэтому это должен быть класс (экземпляры классов всегда должны начинаться со строчной буквы). Однако, если бы это было так, класс не мог бы быть null, что сделало бы исключение нулевого указателя невозможным.
Поэтому я предполагаю, что это экземпляр, и вы не соблюдаете соглашение о том, чтобы указывать экземпляр в нижнем регистре, что просто добавляет путаницы любому, кто пытается помочь.
Мы могли бы помочь больше, если бы вы могли опубликовать некоторый код, который компилируется, запускается и показывает ошибку. (Минимальный проверяемый исполняемый пример или что-то подобное)