黑马程序员技术交流社区

标题: java反射笔记 [打印本页]

作者: Thunder_-_Li    时间: 2013-10-14 08:36
标题: java反射笔记
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方法





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2