概述
java反射机制:是指在运行时,去获取一个类的变量和方法信息,然后通过获取到的信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大的增强程序的灵活性,程序不用再编译期就完成确定,在运行期仍然可以扩展
2、获取Class类的对象
1、使用类的class属性来获取该类对应的class对象。举例:Student.class将会返回Student类对应的Class对象。
2、调用对象的getClass方法,返回该对象所属类对应的Class对象,该方法是Object类中的方法,所有的java对象都可以调用该方法
3、使用Class类中的静态方法forName(String className),该方法需要传入字符串参数,该字符串参数的值是某个类的全路径,也就是完整包名的路径。
反射获取构造方法并使用:
Constructor<?>[] getConstructors ():返回一个包含Constructor对象的数组,包含了该对象的所有公共构造方法
Constructor<?>[] getDeclaredConstructors ():返回一个包含Constructor对象的数组,包含了该对象的所有构造方法
Constructor getConstructor(Class<?>… parameterTypes)返回一个包含Constructor对象的数组,包含了该对象的所有公共构造方法
Constructor getDeclaredConstructor(Class<?>… parameterTypes):返回一个 Constructor对象,该对象反映由此 Class对象表示的类或接口的指定构造函数。
然后通过Constructor对象的newInstance来创建反射对象