我正在进行一个小型数据库分配,我似乎得到一个奇怪的nullPointerException,我找不到问题
以下代码段是错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at interfaces.FindDueActivityForFriend$1.actionPerformed(FindDueActivityForFriend.java:65)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
正如您所看到的,在FindDueActivityForFriend类的65中出现了问题,并且在此代码段中更具体:
friendSearch = friendSearchField.getText();
console.out("Searching for the name that was entered");
console.out("friendSearch variable is: " + friendSearch );
if(con.GetNameExcists(friendSearch )){
//more code
错误发生在if语句中。 在此if语句中,调用连接到数据库的类,检查数据库中是否已存在名称,如果该名称已存在于数据库中,则返回true。
我在程序周围使用了这个特定的方法大约10次没有问题,但这次没有。
console.out(“String”);我之前调用的是一个小型控制台窗口,我只是打印出我告诉它的内容,这是在没有运行应用程序时使用控制台,例如eclipse。
我尝试打印变量只是为了看它是什么,它不是空的。 以下是控制台的复制粘贴:
[Wed May 14 20:04:26 CEST 2014] [INFO] Opened the findDueForFriend screen
[Wed May 14 20:04:30 CEST 2014] [INFO] Searching for the name that was entered
[Wed May 14 20:04:30 CEST 2014] [INFO] FriendSearch variable is: Ylva
我进入了蚂蚁调试器,甚至没有进入方法,它在实际打开方法之前抛出了nullpointer
我不知道自己做错了什么,所以如果有人有任何建议请发帖。
为了完整性,这里是变量的声明:
String friendSearch;
public FindDueActivityForFriend(Console Console){
console = Console;
friendSearch = "";
我甚至尝试将String声明为空字符串,不确定是否使它不为null但我认为应该是,并且控制台窗口清楚地显示字符串在抛出nullpointer异常之前包含某些内容...
答案 0 :(得分:0)
如果它出现在这个if语句
中if(con.GetNameExcists(friendSearch ))
并且你知道friendSearch不为null,然后con必须为null,以便在if语句中获得NullPointerException。
答案 1 :(得分:0)
以下代码的唯一可能性是
if(con.GetNameExcists(friendSearch ))
con
null
或friendSearch
为null
,您可能会访问
开始该方法并执行某些操作,如friendSearch.caoncat
或其他。
看起来应该是con is null
。
尝试在日志中打印con
值。
答案 2 :(得分:0)
如果con.getNameExcists(...)返回布尔而不是布尔值并且可能返回null,那么您将从自动取消装箱中获得NullPointerException。