我真的不明白为什么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