我现在已经在这一点了。 我有一个空指针异常,所以我猜测某些事情没有被初始化。
AdminMessages.inbox1.setText(messageRsetArray[0]);
这是我的代码所针对的代码。但我找不到里面的东西。它一直没有 初始化。
AdminMessages
是一个包含JTextField
inbox1
的类,messageRsetArray
是一个从数组中获取变量的数组。
inbox1
也是静态的。我无法让吸气剂和二传手工作。我知道这是不好的做法。
Exception in thread "main" java.lang.NullPointerException
at project.AdminMessages.fillInboxGui(AdminMessages.java:587)
at project.AdminMessages.<init>(AdminMessages.java:156)
at project.AdminUser.createAdminMessages(AdminUser.java:31)
at project.AdminUser.<init>(AdminUser.java:17)
at project.AdminUser.main(AdminUser.java:45)
答案 0 :(得分:7)
inbox1
和/或messageRsetArray
为null
。您必须使用以下方法实例化它们:
inbox1 = new JTextField();
和
messageRsetArray = new String[size];
在这种情况下,只需检查该位置的哪些变量可能是null
。如果你无法确定,那么拆分表达式,使每行只有一个“NPE-thrower”:
String text = messageRsetArray[0];
AdminMessages.inbox1.setText(text);
您将在下一个堆栈跟踪中获得明确的答案。
答案 1 :(得分:6)
答案 2 :(得分:6)
据我所知,你想要的东西不容易做到(任何“点”都是例外的候选者)。
略微重写源代码可能是获得所需内容的最简单方法。
AdminMessages.inbox1.setText(messageRsetArray[0]);
到
inbox1 = Adminmessages.inbox1;
text = messageRSetArray[0];
inbox1.setText(text);
这使得每行只有一个“点”操作,并且很明显哪一个被打破了。
您可能还想帮助此人使用
查看堆栈跟踪if (AdminMessages.inbox1 == null) {
throw new IllegalArgumentException("AdminMessages.inbox1 == null");
}
(我喜欢这个方法参数。当在代码内部时,你可能需要NullPointerExceptions)。
答案 3 :(得分:0)
最快捷,最简单的方法:使用调试器。
总的来说: