Java反射
基础知识
java 虚拟机有一个运行时数据区,又被分为方法区,堆区和栈区
方法区的主要作用是存储被装载的类的类型信息,当java虚拟机装载某个类型的时候,需要类装载器定位相应的class文件,然后将其读入到java虚拟机中,紧接着虚拟机提取class中的类型信息,将这些信息存储到方法区中。这些信息主要包括:
1、这个类型的全限定名
2、这个类型的直接超类的全限定名
3、这个类型是类类型还是接口类型
4、这个类型的访问修饰符
5、任何直接超接口的全限定名的有序列表
6、该类型的常量池
7、字段信息
8、方法信息
9、除了常量以外的所有类变量
10、一个到class类的引用
概念
在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
使用步骤
应用反射的基本步骤:
1、获得你想操作的类的Class对象;
方法一:Class c=Class.forName("java.lang.String")
方法二:对于基本数据类型可以用形如Class c=int.class或Class c=Integer.TYPE的语句
方法三:Class c=MyClass.class
2、调用Class中的方法得到你想得到的信息集合,如调用getDeclaredFields()方法得到类的所有属性;
3、处理第2步中得到的信息,然后进行你想做的实际操作。