[英]Android Java exception even after string null or empty check
我真的不明白為什么java.lang.NumberFormatException:無效長:這里發生“空”。
問題片段如下。
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;
}
行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));
關鍵是即使在對代碼中的用戶標識進行空值和空值檢查之后,也會發生空異常。 我這是怎么了 請檢查出專家!
字符串值 (非引用)為null
。
if
檢查各種形式的“無值”, if
可以添加"null".equals(userid)
來測試文字null
值。
始終先檢查您的情況是否為空值
if (null==userid || userid.isEmpty() || userid.equals("null") {
然后,在條件的下一個元素中,確保userid不為null,並且不會引發NullPointerException
另外,在您的情況下,請檢查userid是否不包含“ null”字符串
而且userid.equals("")
和userid.isEmpty()
是同一件事。
您可以使用TextUtils
實用程序方法isEmpty
檢查null
,
public static boolean isEmpty(CharSequence str) {
return str == null || str.length() == 0;
}
isEmpty(CharSequence str)
方法檢查兩個條件,是否為null
和length。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.