首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java语言的反照机制

2012-10-24 
java语言的反射机制java语言的反射机制反射:在java运行环境中,对于任意一个类,能否知道这个类有哪些属性和

java语言的反射机制

java语言的反射机制


反射:

在java运行环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?
这种动态获取类的信息以及动态调用对象的方法的功能来自于java语言的反射机制(Reflection)
反射机制的主要提供了以下功能
1、在运行时判断任意一个对象所属的类。
2、在运行时构造任意一个类的对象
3、在运行时判断任意一个类所具有的成员变量和方法
4、在运行时调用任意一个对象的方法

在JDK中,主要由以下类来实现java反射机制,在java.lang.reflect包中
class类:代表一个类
Field类:代表类的成员变量
Method类:代表类的方法
Constructor类:代表类的构造方法
Array类:提供了动态创建数组,以及访问数组的元素的静态方法


Object 类
getClass():返回此 Object 的运行时类。


类 Class
Class 类的实例表示正在运行的 Java 应用程序中的类和接口

String.class 的类型是 Class<String>。如果将被建模的类未知,则使用 Class<?>
常用方法:

forName(String className)方法:返回与带有给定字符串名的类或接口相关联的 Class 对象

newInstance()方法:创建此 Class 对象所表示的类的一个新实例。如同用一个带有一个空参数列表的 new 表达式实例化该类。如果该类尚未初始化,则初始化这个类。

getName() 方法:以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。

getFields()方法:获得类的public类型的属性:

getMethods()方法:获得类的public类型的方法:

getMethod(String name,Class<?>... parameterTypes)方法:
获得类的特定的方法:
name 参数是一个 String,用于指定所需方法的简称。parameterTypes 参数是按声明顺序标识该方法形参类型的 Class 对象的一个数组。

?


Method 类;
Method 提供关于类或接口上单独某个方法(以及如何访问该方法)的信息


invoke(Object obj,Object... args)方法:

对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。

如果底层方法是静态的,那么可以忽略指定的 obj 参数。该参数可以为 null。

如果底层方法所需的形参数为 0,则所提供的 args 数组长度可以为 0 或 null。


setAccessible(boolean flag)方法:

将此对象的 accessible 标志设置为指示的布尔值。值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。

?


Field 类:
Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。


set() 方法:

将指定对象变量上此 Field 对象表示的字段设置为指定的新值。

?

?

?

?

?

?

?

?

?

热点排行