作者:残阳丶
一丶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();//不需要强转