Board logo

標題: java String.equals() 問題 [打印本頁]

作者: CT333    時間: 2020-8-24 21:26     標題: java String.equals() 問題

提示: 作者被禁止或刪除 內容自動屏蔽
作者: 望月小妖    時間: 2020-8-24 22:36

如果name1冇assign value
if(name1.equals("Tony")){}
會throw null pointer exception
作者: KinChungE    時間: 2020-8-24 23:13

如果name1冇assign value
if(name1.equals("Tony")){}
會throw null pointer exception
望月小妖 發表於 2020-8-24 22:36


實際例子:

String name1 = null;
if ("Tony".equals(name1)) {} // false
if (name1.equals("Tony")) {} // NullPointException
作者: rabbit82047    時間: 2020-8-25 08:55

上面 ching 講左分別
因為 variable 本身 nullable,
寫得多, 你會習慣性咁用第二種寫法, 咁樣可以減少好多 NPE
作者: 天下無雙    時間: 2020-8-25 09:27

if("Tony".equals(name1)){}

係,咁樣一定唔會NPE,但係你會無左configurability.

不如試下咁樣?

String toCompare='Tony';
if (toCompare != null && toCompare.equals(<String to compare>))......
作者: KinChungE    時間: 2020-8-25 11:49

上面 ching 講左分別
因為 variable 本身 nullable,
寫得多, 你會習慣性咁用第二種寫法, 咁樣可以減少好多 ...
rabbit82047 發表於 2020-8-25 08:55


我反如慣左
try {
   if (name1.equals("Tony")) {}
} catch (Exception e) {}

作者: rabbit82047    時間: 2020-8-25 12:44

回覆 6# KinChungE


    Good Practice

但好多情況係只需要知 T/F
作者: EITCo    時間: 2020-8-25 14:07

我反如慣左
try {
   if (name1.equals("Tony")) {}
} catch (Exception e) {}
KinChungE 發表於 2020-8-25 11:49



try catch好似有額外overhead?
而且為左咁整個block,睇code時會辛苦左

就算唔寫 "literal".equals(variable)
都好似係#5簡潔啲

定係你講下笑
作者: KinChungE    時間: 2020-8-25 16:17

try catch好似有額外overhead?
而且為左咁整個block,睇code時會辛苦左

就算唔寫 "literal".equals(va ...
EITCo 發表於 2020-8-25 14:07


我講係成個function由頭到尾try catch
作者: 望月小妖    時間: 2020-8-25 19:43

我講係成個function由頭到尾try catch
KinChungE 發表於 2020-8-25 16:17



    有冇考慮過method throws埋個exception出去?
作者: KinChungE    時間: 2020-8-26 12:23

有冇考慮過method throws埋個exception出去?
望月小妖 發表於 2020-8-25 19:43




public static void main(String[] args) throws Exception {
.......
}


作者: rabbit82047    時間: 2020-8-26 17:41

main throws exception





歡迎光臨 電腦領域 HKEPC Hardware (https://h0.hkepc.com/forum/) Powered by Discuz! 7.2