1.每一個對象都具有的方法:getClass來獲取。對象
實例:
Object obj = new Person();字符串
Class clazz1 = obj.getClass();get
弊端:it
必須有了對象之後才能夠使用,否則會有錯誤: object is not an instance of declaring class,沒有對象的實例。ast
2.經過每個數據類型(基本數據類型和引用數據類型)都有一個靜態的屬性class來獲取。class
實例:擴展
Class clazz2 = Person.class; 配置
弊端:object
必須知道對象具體的類名,才能夠使用數據類型
3.使用的Class類中的方法,靜態的forName方法。指定什麼類名,就獲取什麼類字節碼文件對象,這種方式的擴展性最強,只要將類名的字符串傳入便可。
實例:
tring classname = "cn.itcast.reflect.Person";// 來自配置文件
Class clazz = Class.forName(classname);// 此對象表明Person.class
方法三是最常使用到的獲取Class對象的方法