[問題] null值無法進入if 判斷式

看板AndroidDev作者 (lo33)時間13年前 (2011/10/08 01:59), 編輯推噓7(7018)
留言25則, 10人參與, 最新討論串1/2 (看更多)
目前在寫一個程式 是先抓到mysql的再轉換成json字串 但我想寫個判斷式若 值result是null的話 會出現警語 程式是這樣: try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(link); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); } catch (Exception e) { Log.e("1", "Error in http connection " + e.toString()); } // convert response to string try { BufferedReader reader = new BufferedReader(new InputStreamReade is, "UTF-8"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result = sb.toString(); } catch (Exception e) { Log.e("2", "Error converting result " + e.toString()); } // parse json data // Log.e("result", result); if (result==null) { Toast.makeText(ScheduleActivity.this, R.string.noresult, Toast.LENGTH_LONG).show(); } else { /////////////////////// } 我重Log.e看可以看到我所抓的result 的值是null 但是程式都會進入else裡面而不是在if那邊出現警語 我也試過 if (result.equals(null)) { } 的寫法還是不行@@ 還請高手指點!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.137.72

10/08 07:54, , 1F
試試 "null".equals(result) 這樣?
10/08 07:54, 1F

10/08 07:54, , 2F
在猜會不會 result 的值是一個內容為 null 四個字的字串...
10/08 07:54, 2F

10/08 11:00, , 3F
還是一樣耶 我也試過就是字串"null" 了 QQ
10/08 11:00, 3F

10/08 11:26, , 4F
你的result在哪裡宣告阿
10/08 11:26, 4F

10/08 11:33, , 5F
onCreate那裏有宣告 我只是貼取值的程式而已
10/08 11:33, 5F

10/08 11:36, , 6F
這個問題我也遇過,不知怎麼解決的
10/08 11:36, 6F

10/08 11:36, , 7F
你試試看拿到String response = EntityUtils.toString(
10/08 11:36, 7F

10/08 11:37, , 8F
HttpResponse)試試看,不要拿inputStream硬讀
10/08 11:37, 8F

10/08 15:53, , 9F
我也是卡在這裡Q_Q
10/08 15:53, 9F

10/08 17:45, , 10F
tom大的方法也試過了 還是不行@@
10/08 17:45, 10F

10/08 18:22, , 11F
可以利用result的長度來判斷嗎?
10/08 18:22, 11F

10/08 19:13, , 12F
那就不是null拉
10/08 19:13, 12F

10/08 19:14, , 13F
你用eclipse的debugger看看那是什麼
10/08 19:14, 13F

10/08 19:16, , 14F
就土法煉鋼去step into看為什麼沒進入if
10/08 19:16, 14F

10/08 20:10, , 15F
直接log出來不就知道是什麼了
10/08 20:10, 15F

10/08 20:14, , 16F
友啊 我有log出來 是null沒錯..QQ
10/08 20:14, 16F

10/08 20:25, , 17F
你可以在 else 裏面印 result.getClass() 看看
10/08 20:25, 17F

10/08 23:43, , 18F
我在猜樓上這樣會出現NPE?
10/08 23:43, 18F

10/09 00:21, , 19F
如果是null pointer exception那怎麼還會進入ELSE
10/09 00:21, 19F

10/10 14:18, , 20F
原PO可以測看看嗎XD?因為我之前也遇過同樣BUG
10/10 14:18, 20F

10/10 14:19, , 21F
@nv : 有時候遇到一些怪情況你也不知道怎麼解釋= =
10/10 14:19, 21F

10/11 10:32, , 22F
我沒遇到那種情況阿 XD
10/11 10:32, 22F

10/11 10:33, , 23F
我比較好奇的是為什麼會這樣
10/11 10:33, 23F

10/11 10:44, , 24F
中間有 exception 又初始化為 "null" 就有可能XD
10/11 10:44, 24F

10/11 11:09, , 25F
XD
10/11 11:09, 25F
文章代碼(AID): #1EZpthi1 (AndroidDev)
討論串 (同標題文章)
文章代碼(AID): #1EZpthi1 (AndroidDev)