您的位置:首页 > 编程语言 > Java开发

java反射应用--调用方法与访问属性

2013-05-16 21:48 501 查看
一、调用方法

1、利用反射可以获取类的信息、创建相关对象(如Coustrutcor类、Field类、Method类),在Method里面有一个invoke方法,通过invoke()方法来调用Method对象对应的方法;

Object invoke(Object obj ,Object...args):obj是执行该方法的对象,args是执行该方法时传入该方法的参数。

2、利用反射调用Class对应类中的私有方法时,应该利用setAccessible(Boolean flag)方法,如果flag=true,表示该Method在使用时应该取消Java语言访问权限检查;如果flag=flase,表示该Method在使用时应该实施Java语言访问权限检查。

二、访问属性

通过Class对象的getFields()或getField()方法来获取该类包含的全部公共属性或指定的公共属性,getDeclaredFields()或getDeclaredField()则不受访问权限的限制。于是,利用Field类提供的方法来访问属性:

getX**(Object obj):obj是Class对象对应类的实例对象,通过该方法可以获取obj对象中该属性的属性值。

示例:

Person p=new Person();

nameField.get(p);//表示返回的是引用类型的属性,如String类型的属性。

nameField.getInt(p);

setX**(Object obj,X** val):将obj对象的该属性的值设为参数val

Field.setAccessible(true);访问private访问控制属性。

说明:此处的X**对应的是java的8个基本数据类型,如字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。

应用:在程序需要动态创建摸个类的对象时,才会考虑使用反射,并通过反射来改变类中私有属性的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐