1. 知识点一,得到操作类或操作类对象的Class对象的3种方式:
1) 使用Class类的静态方法forName(); ex:
Class.forName("java.lang.String");
2) 使用类的class语法; ex:
String.class;
3) 使用对象的getClass()方法; ex:
String s = "aa"; Class<?> classType = s.getClass();
2. 知识点二,利用反射机制得到操作类的对象的方式(使用无参构造方法的方式有2种,有参构造的方式有1种)
1) 利用无参构造的方式一(先得到Class类的对象,再得到操作类的对象):ex:
Class clazz = String.class; Object<?> object = clazz.newInstance();
2) 利用无参构造的方式二(先过的Class类的对象,再得到对应的该Class对象的构造方法对象,再得到目标操作类的实例对象)
Class clazz = String.class;
Constructor con = clazz.getConstructor(new Class[]{});
Object<?> obj = con.newInstance(new Object[]{});
3)利用有参构造方式得到操作类对象的方式(只有一个,利用构造方法对象)
Class clazz = String.class;
Constructor con = clazz.getConstructor(new Class[]{String.class,int.class});
Object<?> obj = con.newInstance(new Object[]{"hello",3});