java中的反射
Class 类的名字代表的一类事物--->描述这些事物的java类名就是Class 中保存的就是字节码文件。
字节码 二进制代码 加载到内存中的数据。
class.forName();需要
java框架(ssh)中需要反射技术
Class 会提供相应的方法来返回一些东西
字节码:
getClass();获得字节码
forName();返回字节码
Class 字节码文件。
获得各个字节码对应的实例对象(Class类型)
类名.class
对象.getClass();
Class.forName(“”);反射的时候通常用第三种。
9个基本数据类型(包含void)
数组类型的Class实例对象。
总之只要是在源程序中出现的类型都有各自的Class的类型
数组类型的实例对象Class.isArray();
总之只要是在源程序中出现的类型,都有各自的Class实例对象。
反射就是把java类中的各个成分映射成相应的java类
自我理解 反射就是对所有类的基本概括。属于对类的一个总结类。把java类的每一个成分解析成为一个类。
。
反射中 Constructor类
一份Class文件就是一个字节码文件
Constructor 就是字节码文件里一份构造方法
constructor 类代表某个类中的一个构造方法
1、得到某个类所有的构造方法
Contructor c[]=Class.forName("class").getContructors();存储在一个数组中
2、得到某一个构造方法
Contructor c=Class.forName("java.lang.String").getContructor(StringBuffer.class);
给构造方法提供一段字节码文件的参数
Contructor contructor1= String .class.getContructor(String Buffer.class);
contructor1.newInstance(new StringBuffer("abc"));
Filed成员变量的反射。
通过getField()方法来获取值。
field 不代表具体的对象变量,而是类上的变量
可以通过 get(对象)
对于私有变量 可以通过暴力反射 setAccessible();设置访问权限。
用反射执行某个类的main方法
|