作者adrianshum (Alien)
看板java
標題Re: [問題] instanceof? class.toString().equals …
時間Wed Sep 16 14:28:11 2009
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: 我在別人家的程式碼看到這一行
: if(value.getClass().toString().equals(String.class.toString()))
: 我不太懂,這樣子寫有什麼好處? 為甚麼不直接用
: if(value instanceof String)
: 就好了?
: ====
: btw... 這是在 GWT client 的程式碼
: 但是已經確定 instanceof 在 client 是可以正確轉換的... Orz
getClass() 做比較, 我只想到
1) 不想 child class 也通過 (可是這情況下的 String 是 final class)
2) 萬一 value 是 null, 用 instanceof 好像是 always true 的.
不過我有看過的, 都只是 value.getClass() == String.class;
或 value.getClass().equals(String.class); toStirng 才比較
我也猜不透為什麼了. orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
推 PsMonkey:null instanceof Foo 會得到 false...... 09/16 14:31
推 godfat:my.hack.String ? 09/16 15:33
推 AI3767:嗯… 若value是null, 那value.getClass()會exception 09/16 16:13
→ ken915007:value是null,使用instanceof是不會出現exception的 09/16 21:07
→ adrianshum:咦? 記錯了 XD 但我記得null/Void 有特別特性,忘了是啥 09/16 21:27