Java反射机制

来源:互联网 发布:windows 7恢复出厂设置 编辑:程序博客网 时间:2024/06/05 19:37

 

Java反射机制:运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java
反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

Reflection Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fieldsmethods的所有信息,并可于运行时改变fields内容或唤起methods

JDK中,实现反射机制的类在java.lang.reflect包中。

    1. Class 类:代表一个类
      
它有以下方法
     (1) getName()
:获得类的完整名字。
     (2) getFields()
:获得类的public类型的属性。 
     (3) getDeclaredFields()
 获得类的所有属性,包括publicprotected、默认和private访问级别的属性。 
     (4) getMethods()
:获得类的public类型的方法。 
     (5) getDeclaredMethods()
:获得类的所有方法。
     (6) getMethod(String name, Class[] parameterTypes)
:获得类的特定方法,name参数指定方法的名字,parameterTypes参数指定方法的参数类型。 
     (7) getConstrutors()
:获得类的public类型的构造方法。
     (8) getConstrutor(Class[] parameterTypes)
:获得类的特定构造方法,parameterTypes参数指定构造方法的参数类型。 
     (9) newInstance()
:通过类的不带参数的构造方法创建这个类的一个对象。

    2. Field 类:代表类的成员变量(类的属性)。

    3. Method类:代表类的方法。Method类的invoke(Object obj,Object args[])方法用于动态执行一个对象的特定方法,它的第一个 obj 参数指定具有该方法的对象,第二个args 参数指定向该方法传递的参数。

    4. Constructor类:代表类的构造方法。

    5. Array 类:提供了动态创建数组,以及访问数组元素的静态方法。

 

 

原创粉丝点击