我真的不明白爲什麼java.lang.NumberFormatException:無效long:「null」在這裏發生。即使在字符串空或空字符串檢查後,Android Java異常
問題代碼片段如下所示。
try {
userid = ((JSONObject) msg.obj).getString("userid");
if (userid.equals("") || userid.isEmpty() || null==userid) {
onClickLogout();
return;
} else {
client.setUserid(Long.parseLong(userid));
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
onClickLogout();
return;
}
line client.setUserid(Long.parseLong(userid));得到以下異常
java.lang.NumberFormatException: Invalid long: "null"
at java.lang.Long.invalidLong(Long.java:125)
at java.lang.Long.parse(Long.java:362)
at java.lang.Long.parseLong(Long.java:353)
at java.lang.Long.parseLong(Long.java:319)
at client.setUserid(Long.parseLong(userid));
的一點是,空例外,甚至之後的代碼的用戶ID的空和空管檢查發生。我在這裏有什麼問題?請查看專家!
首先檢查用戶標識是否爲空,而不是調用等號,否則您可能遇到NPE – 2014-10-10 14:43:31
我已編輯您的問題,請檢查。這可以避免可能的NullPointerException。另外,你應該添加@laalto'sanswer。 – 2014-10-10 14:49:32
哦,對不起@PedroOliveira。我剛剛看到您的評論xD – 2014-10-10 14:50:14