1.反射机制界说

反射的概念是由Smith在1982年首次提出的,主要是指程序能够拜访、检测和修正其本身状况或行为的一种才能。
在Java环境中,反射机制答应程序在执行时获取某个类自身的界说信息,例如了解和办法等也能够完成动态创建
类的方针、变更属性的内容或执行特定的办法的功用。从而使Java具有动态言语的特性,增强了程序的灵活性和
可移植性。
2.反射机制的作用
Java反射机制主要用于完成以下功用。
(1)在运行时判别恣意一个方针所属的类型。
(2)在运行时结构恣意一个类的方针。
(3)在运行时判别恣意一个类所具有的成员变量和办法。
(4)在运行时调用恣意一个方针的办法,甚至能够调用private办法。
注意:上述功用都是在运行时环境中,而不是在编译时环境中。
3.Java反射机制API
完成Java反射机制的API在Java.lang.reflect包下,具有以下几点。
(1)Class类:代表一个类。
(2)Filed类:代表类的成员变量。
(3)Method类:代表类的办法。
(4)Constructor类:代表类的结构办法。
(5)Array类:供给了动态创建数组及拜访数组元素的静态办法。该类中的一切办法都是静态的。
4.应用示例
(1)根据类名获取类中界说的一切属性和办法,实例代码如下:packageday0105;importjava.lang.reflect.Array;importjava.lang.reflect.Field;importjava.lang.reflect.Method;publicclassReflect{/****打印出String类一切的属性和办法*/publicvoidtest1(){Classc=String.class;Method[]methods=c.getMethods();for(inti=0;iStudent类的界说如下packageday0105;publicclassStudent{privateStringid;privateStringname;publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicvoidshow(){System.out.println(id+”:”+name);}}
Java言语反射供给一种动态链接程序组件的多功用办法。它答应程序创建和控制任何类的方针,
无需提前硬编码方针类。这些特性使得反射特别适用于创建以一般方式与方针协作的库。
反射在功能方面会有必定的损耗,用于字段和办法接入时反射要远慢于直接写代码。如果它作为程序
运行中相对很少触及的部分将不会形成影响,由于即便测试最坏情况下的计时图显现的反射操作也只耗用几微秒。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。