Java 反射的定义:
Java 反射所要依赖的类:
java.lang.Class;
java.lang.reflect.Method;
java.lang.reflect.Field;
java.lang.reflect.
Constructor;
java.lang.reflect.Array;
无论一个类生成多少个对象,它们都对应唯一的一个class。
一、 要想使用反射,首先需要获得待处理的类或对象所对应的Class对象。
获取Class对象主要有三种方法:
//获取Class对象方法一: 使用Class类的静态方法
Class<?> classType1 = Class.forName("java.lang.String");
//获取Class对象方法二: 使用类的.class 语法
Class<?> classType2 = String.class;
//获取Class对象方法二: 使用对象的getClass()方法(因为使用的是对象的getClass()方法,所以要先生成对象)
String str = "reflection";
Class<?> classType3 = str.getClass();
二、获取Class对象后就可以生成类的对象了,也有二种方法:
//生成对应Class的对象(适合构造方法为空)
Object obj1 = classType1.newInstance();
//生成对应Class的对象 的第二种方法(适合任何方式的构造方法,空构造方法时只要传一个空数组)
Constructor<?> cons = classType1.getConstructor(new Class[]{});
Object obj2 = cons.newInstance(new Object[]{});
三、获取Class对象所有的属性和方法
//获取所有的属性
Field[] field = classType3.getDeclaredFields();
//获取所有的方法
Method[] methods = classType3.getMethods();