动力节点 http://www.bjpowernode.com
http://www.bjpowernode.com
http://www.bjpowernode.com
http://www.bjpowernode.com
1
1.
1.
1.
1. 纲要
a) 反射的基本概念
b) Java 中的类反射
c) 安全性和反射
d) 反射 的 两个缺点
2.
2.
2.
2. 内容
2.1
2.1
2.1
2.1 、反射的基本概念
、反射的基本概念
、反射的基本概念
、反射的基本概念
反射的概念是由 Smith 在 1982 年首次提出的,主要是指程序可以访问、检测和修改它本身
状态或行为的一种能力 , 并能根据自身行为的状态和结果 , 调整或修改应用所描述行为的状
态和相关的语义 。 Java 中 , 反射是一种强大的工具 。 它使您能够创建灵活的代码 , 这些代码
可以在运行时装配 , 无需在组件之间进行源代 码 链接 。 反射允许我们在编写与执行时 , 使我
们的程序代码能够接入装载到 JVM 中的类的内部信息,而不是源代码中选定的类协作的代
码。这使反射成为构建灵活的应用的主要工具。 但需注意的是:如果使用不当,反射的成
本很高。
2.2
2.2
2.2
2.2 、
、
、
、 Java
Java
Java
Java 中的类反射
中的类反射
中的类反射
中的类反射
Reflection 是 Java 程序开发语言的特征之一 , 它允许运行中的 Java 程序对自身进行检查
,
或者说 “ 自审 ” 或 “ 自省 ” , 并能直接操作程序的内部属性 。 Java 的这一能力在实际应用中也
许用得不是很多 , 但是在其它的程序设计语言中根本就不存在这一特性 。 例如 , Pascal 、 C 或
者 C++ 中就没有办法在程序中获得函数定义相关的信息。
2.2.1
2.2.1
2.2.1
2.2.1 reflection
reflection
reflection
reflection 的工作机制
程序运行时 , java 系统会一直对所有对象进行所谓的运行时类型识别 , 这项信息记录了每个
对象所属的类。通过专门的类可以访问这些信息。用来保存这些信息的类是 class 类, clas s
类为编写可动态操纵的 java 代码程序提供了强大功能
构造 Class 对象有 3 种方式:
1 、 Class.forName();
try {
// 构造 Class 对象的第一种方法
Class clazz = Class.forName("java.lang.String");
Object obj = clazz.newInstance();