♥ 最新消息 ♥

♨ 好吃好玩,民宿體驗,試吃 ~ 歡迎合作邀約 

E-Mail : luckyboy7527@hotmail.com   LINE ID:raylee0527

歡迎加入粉絲專頁: 瑞與瑪姬 ♫ 趴趴走黑白吃 


[月子餐試吃心得] 玉膳坊,懷恩,藍田,康和,禾馨芽果,荷風,好婆婆,悅子

[長灘島] 五日遊行程 (持續更新中)

 [日本]大阪, 京都, 姬路, 奈良五日自由行

 [泰國]蘇美島蜜月旅行七日遊記

 [台灣]澎湖三日自由行

禁止改作,歡迎轉貼但請註明出處.

 

錯誤用法1.

if (name == "") {

    //do something

}

錯誤用法2.

if (name.equals("")){

   //do something

}

錯誤用法3.

if (!name.equals("")){

  //do something

}

錯誤1. 是新手比較容易犯的錯,從程式寫法上解讀感覺也沒錯,也滿難發現的,

因為語法本身完全沒問題,也可以正常complie

但是這種條件在執行程式的時候,會有Bug出現,永遠也不會是true

簡單說就是判斷後裡面的語法永遠都不會被執行到

 

錯誤2.跟3. 很多java Programmer 也會犯錯,

為什麼錯呢!? 本身語法也是沒問題,但是忘了一點,如果不是空值是null呢!?

程式就會直接丟出NullPointException了

正確寫法有兩種,一種是先加上 name!= null的條件

正確用法1.

if (name != null && !name.equals("")) {
   //do something
}

比較建議的寫法是將""寫在前頭

正確用法2.

if (!"".equals(name)) {   
   //do something
}

將""寫在前面的好處是,不管name 是不是null 都不會報錯 ~~

文章標籤
創作者介紹
創作者 瑞、瑪姬與小昆妮 的頭像
瑞、瑪姬與小昆妮

瑞瑪姬與小昆妮♫趴趴走黑白吃

瑞、瑪姬與小昆妮 發表在 痞客邦 留言(2) 人氣()


留言列表 (2)

發表留言
  • grant.ahc
  • 不好意思新手上路 我不太懂 !"" 的意思 !是邏輯NOT 那"" 是字串空白 但是這樣合在一起丟到IF裡面好像都會是TRUE
  • Hi Grant, 我有點看不太懂你的意思

    上面的只是範例,用法還是在於看你要判斷什麼

    if (!"".equals(name))

    (1)
    String name = ""; 這樣會變成 false
    (2)
    String name = "ABC"; 這樣會是 true
    =================================
    if ("".equals(name))

    (1)
    String name = ""; 這樣會變成 true
    (2)
    String name = "ABC"; 這樣會是 false

    希望可以幫上忙 :)

    瑞、瑪姬與小昆妮 於 2017/08/07 17:27 回覆

  • 白
  • 請教一下
    if (!"".equals(name))
    如果name = null
    "".equals(null) 應該是 false
    !"".equals(name)不就變true了嗎
  • Hi 這段我看不太懂,是不是寫錯?

    --->>> "".equals(null) 應該是 false <<<<-----

    String name = null;
    System.out.println("".equals(name));
    System.out.println(!"".equals(name));
    結果:
    false
    true
    =========
    String name = "";

    System.out.println("".equals(name));
    System.out.println(!"".equals(name));
    結果:
    true
    false

    瑞、瑪姬與小昆妮 於 2017/09/28 16:53 回覆