獲得對象的類

問: gerClass()方法是用來作什麼的?html

答: 經過gerClass()方法能夠獲得一個和這個類有關的java.lang.Class對象。返回的Class對象是一個被static synchronized方法封裝的表明這個類的對象;例如,static sychronized void foo(){}。這也是指向反射API。由於調用gerClass()的對象的類是在內存中的,保證了類型安全。java

問: 還有其餘方法獲得Class對象嗎?安全

答: 獲取Class對象的方法有兩種。能夠使用類字面常量,它的名字和類型相同,後綴位.class;例如,Account.class。另一種就是調用ClassfoeName()方法。類字面常量更加簡潔,而且編譯器強制類型安全;若是找不到指定的類編譯就不會經過。經過forname()能夠動態地經過指定包名載入任意類型地引用。可是,不能保證類型安全,可能會致使Runtime異常。spa

問: 實現equals()方法的時候,getClass()instanceof哪個更好?code

答: 使用getClass()仍是instanceof的話題一直都是Java社區爭論的熱點,Angelika Langer的Secrets of equals – Part 1文章能夠幫助你作出選擇。關於正確覆蓋equals()方法(例如保證對稱性)的討論,Lang的這篇文章能夠做爲一個很好的參考手冊。htm

相關文章
相關標籤/搜索