反射是指在程序运行期可以得到一个对象的所有信息
反射的作用
在运行时判断一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断一个类所具有的成员方法和变量,在运行时调用一个对象的方法;生成动态代理。
获取类的Class
通过类的全路径名Class class1 = Class.forName(“java.lang.String”);
通过.Class
Class class2 = String.class;
通过类对象的getClass()方法
Class class3 = str.getClass();
在运行期间只有一个Class对象,上面三种方法获取到的是一个对象
通过反射创建对象
Apple apple = (Apple) class.newInstance;
Apple apple = (Apple) constructor.newInstance;
通过class只能使用默认的构造方法,而使用构造器的话则可以选择特定的构造方法
通过反射类获取类的属性、方法、构造器