一、概念
反射就是把Java的各种成分映射成Java相应的类。
反射是Java语言的一个特性,它允许程序在运行时来进行自我检查并对内部的成员进行操作,它允许一个Java的类去获取它所有的成员变量和方法并显示出来。
—–come from sun
反射是从jdk1.2就有的,ssh框架都使用到Java的反射机制。涉及到的“Class”无法直接newClass(),因为Class对象是内存里的一堆字节码。Class类的实例表示正在Java程序中的类或者接口。枚举是一种类,注释是一种接口,每个数组属于被映射为Class对象的一个类,所有具有相同元素类型和维数的数据共享一个Class对象,基本的Java类型(int,char,boolean,double,float,short,long,byte)和关键字void也表示为Class对象。Class没有public类型的构造方法。Class对象是由Java虚拟机及通过调用类加载器中的defineClass方法自动创建的。
二、举例
//以下三种方式都可以获取字节码
Person person = new Person();
Class cls1 = person.class();
Class cls2 = person.getClass();
Class cls3 = Class.forName("com.test.Person");