Thinking in Java 中尚未引入泛型概念
RTTI - run-time type identification
1. 每當編寫并且編譯了一個新類,就會產生一個Class對象(更恰當的說,是被保存在一個同名的.class文件中)
2. Class類的一些方法(*表示會拋出異常):
* static forName(String) 返回相應的Class類,注意字符串里要加上包名
* newInstance() 返回對應于該Class類的類的實例,注意該類必須有一個缺省構造器。
isInstance(Object) 返回該對象是否是Class類對應的類的實例(或子類)
getSuperClass() 返回直接父類的Class類
* getConstructors() 返回構造器,返回值是Constructor[]
* getFields() 返回字段,返回值是Field[]
* getMethods() 返回字段,返回值是Method[]
3. 類字面常量 (Class literals)
例如要獲得Gum類的Class類就使用Gum.class
對于基本數據類型的wrapper類,還有一個標準字段TYPE,int.class和Integer.TYPE返回值一樣,建議使用.class以保持一致。
4. Java希望我們始終使用多態機制,只在必需的時候使用RTTI。