Re: [問題] instanceof? class.toString().equals …

看板java作者 (Alien)時間16年前 (2009/09/16 14:28), 編輯推噓3(302)
留言5則, 5人參與, 最新討論串1/1
※ 引述《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

09/16 14:31, , 1F
null instanceof Foo 會得到 false......
09/16 14:31, 1F

09/16 15:33, , 2F
my.hack.String ?
09/16 15:33, 2F

09/16 16:13, , 3F
嗯… 若value是null, 那value.getClass()會exception
09/16 16:13, 3F

09/16 21:07, , 4F
value是null,使用instanceof是不會出現exception的
09/16 21:07, 4F

09/16 21:27, , 5F
咦? 記錯了 XD 但我記得null/Void 有特別特性,忘了是啥
09/16 21:27, 5F
文章代碼(AID): #1Ai8LykW (java)