作者: 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 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
有冇考慮過method throws埋個exception出去?
作者: KinChungE 時間: 2020-8-26 12:23
有
public static void main(String[] args) throws Exception {
.......
}
作者: rabbit82047 時間: 2020-8-26 17:41
main throws exception


