高考历史、文综历史专题复习【全部完成】
二、Java中的类反射:
Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。
1.检测类:
1.1 reflection的工作机制
考虑下面这个简单的例子,让我们看看 reflection 是如何工作的。
import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}
按如下语句执行:
java DumpMethods java.util.Stack
它的结果输出为:
public java.lang.Object java.util.Stack.push(java.lang.Object)
public synchronized java.lang.Object java.util.Stack.pop()
public synchronized java.lang.Object java.util.Stack.peek()
public boolean java.util.Stack.empty()
public synchronized int java.util.Stack.search(java.lang.Object)
这样就列出了java.util.Stack 类的各方法名以及它们的限制符和返回类型。
这个程序使用 Class.forName 载入指定的类,然后调用 getDeclaredMethods 来获取这个类中定义了的方法列表。java.lang.reflect.Methods 是用来描述某个类中单个方法的一个类。
1.2 Java类反射中的主要方法
对于以下三类组件中的任何一类来说 -- 构造函数、字段和方法 -- java.lang.Class 提供四种独立的反射调用,以不同的方式来获得信息。调用都遵循一种标准格式。以下是用于查找构造函数的一组反射调用:
l Constructor getConstructor(Class[] params) -- 获得使用特殊的参数类型的公共构造函数,
l Constructor[] getConstructors() -- 获得类的所有公共构造函数
l Constructor getDeclaredConstructor(Class[] params) -- 获得使用特定参数类型的构造函数(与接入级别无关)
l Constructor[] getDeclaredConstructors() -- 获得类的所有构造函数(与接入级别无关)
获得字段信息的Class 反射调用不同于那些用于接入构造函数的调用,在参数类型数组中使用了字段名:
l Field getField(String name) -- 获得命名的公共字段
l Field[] getFields() -- 获得类的所有公共字段
l Field getDeclaredField(String name) -- 获得类声明的命名的字段
l Field[] getDeclaredFields() -- 获得类声明的所有字段
用于获得方法信息函数:
l Method getMethod(String name, Class[] params) -- 使用特定的参数类型,获得命名的公共方法
l Method[] getMethods() -- 获得类的所有公共方法
l Method getDeclaredMethod(String name,
—检测一个在运行期间才知道名字的对象的方法 利用 Java 反射机制我们可以很灵活的对已经加载到 Java 虚拟机当中的类信 息进行检测。 当然这种检测在对运行的性能...
java反射机制详解与应用_IT/计算机_专业资料。java反射机制详解与应用java 有着一个非常突出的动态相关机制:Reflection。这个字的意思是“反射、映象、倒影”, 用在...
Java 反射机制一、 Java 反射机制 1、什么是 java 语言的反射机制 JAVA 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方 法;对于任意一...
Java泛型 ? 理解Java泛型 ? 应用Java泛型编程 ?Java反射机制 ? 理解Java反射机制 ? 理解Java的动态代理 ? Spring IoC原理剖析 Java泛型在Java SE 1.5之前,没...
JAVA 反射机制定义: JAVA 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所 有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态 ...
Java反射机制 Java反射机制 本课程主要讲述Java反射机制 本课程要求大家对Java泛型知识有所了解,因为程序代码 中大量使用了泛型相关知识 2010-12-2 成都天府软件园...
谈 java 反射机制 Java 反射机制 Java 集合浅析 Java 的类反射机制 Java 反射机制的学习 Java 反射 Reflection--运行时生成实例 Java 反射机制 Java 反射机制 2 ...
Java 开发员 STY Manoel Lemos Singularity 系统公司 CEO/CTO 1
java反射机制及例子_工学_高等教育_教育专区。反射原理讲解及例子演示1 Java 反射 reflection Java 提供了一套机制来动态执行方法和构造方法, 以及数组操作等, 这套...
JAVA反射机制原理_计算机软件及应用_IT/计算机_专业资料。对于java反射机制的解释运行时类型识别(Run-time Type Identification, RTTI)主要有两种方式,一种是我们在编...
热门文档