作者:殘陽丶
一丶Class的理解
|
二丶獲得Class對象的方法
1)通過類的靜態屬性class獲得
Class clazz = Person.class;
2)通過運行時類的getClass方法獲得
Person person = new Person();
Class clazz = person.getClass();
3)通過Class的靜態方法獲得
String className = "com.reflect.Person";
Class clazz = Class.forName(className);
4)通過類的加載器獲得(瞭解)
String className = "com.reflect.Person";//類的完全限定名
ClassLoader classLoader = NioTest3.class.getClassLoader();
Class clazz = classLoader.loadClass(className);
三、通過Class對象創建對應的運行時類的實例對象
Class clazz = Person.class;//沒有使用泛型,默認是object類型的class對象
Person person = (Person) clazz.newInstance(); //需要強轉,該方法默認調用運行時類的無參構造方法,所以類必須有無參構造方法,無參構造方法權限夠大
Class<Person> clazz = Person.class;//使用了泛型指定是Person類型的class對象
Person person = clazz.newInstance();//不需要強轉