手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

java反射教程

时间:2024-11-02 07:14:49

1、类别加载与检视即使您拿到一个类别并对它一无所知,但其实它本身就包括了许多信息,Java在需要使用到某个类别时才会将类别加载,并在JVM中以一个java.lang.Class的实例存在,从Class实例开始,您可以获得类别的许多信息。Java在真正需要使用一个类别时才会加以加载,而不是在程序启动时就加载所有的类别,因为大多数的使用者都只使用到应用程序的部份资源,在需要某些功能时才加载某些资源,可以让系统的资源运用更有效率(Java本来就是为了资源有限的小型设备而设计的,这样的考察是必然的)。

2、Java 反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类。在运行时构造任意一个类的对象。在运行时判断任意一个类所具有的成员变量和方法。在运行时调用任意一个对象的方法。

3、Reflection 是Java被视为动态(或准动态)语言的一个关键性晨月鲈蜉质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包噢谙坟吕括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Serializable),也包括fields和methods的所有信息,并可于运行时改变fields内容或调用methods。一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。尽管在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关机制:Reflection。这个字的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。这种“看透class”的能力(the ability of the program to examine itself)被称为introspection(内省、内观、反省)。Reflection和introspection是常被并提的两个术语。

4、在JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包中:Class类:代表一个类。Field 类:代表类的成员变量(成员变量也称为类的属性)。Method类:代表类的方法。Constructor 类:代表类的构造方法。Array类:提供了动态创建数组,以及访问数组的元素的静态方法。

5、实例参考:一个例子让你了解Java反射机制:http://blog.csdn.net/ljphhj/article/details/12858767

© 手抄报圈