第1章 反射
定义:
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象。
/* * 获取一个类的class文件对象的三种方式 * 1. 对象获取 * 2. 类名获取 * 3. Class类的静态方法获取 */
源码实例如下:
public class ReflectDemo { public static void main(String[] args)throws ClassNotFoundException { //1. 对象获取 Person p = new Person(); //调用Person类的父类的方法 getClass Class c = p.getClass(); System.out.println(c); //2. 类名获取 //每个类型,包括基本和引用,都会赋予这个类型一个静态的属性,属性名字class Class c1 = Person.class; System.out.println(c1); //3. Class类的静态方法获取 forName(字符串的类名)包名.类名 Class c2 = Class.forName("cn.itcast.demo1.Person"); System.out.println(c2); }