您的位置:首页 > 产品设计 > UI/UE

写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.

2014-08-27 00:39 1111 查看
/*

4、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.

public void setProperty(Object obj, String propertyName, Object value){

}

思路:1.定义一个用来演示的类,再创建该类对象。

2.定义一个可以将propertyName的属性的值设置为value的方法。

3.把对象传入,获取对象的字节码文件。

4.通过反射,得到propertyName字段。再把该值改变传入的value值。

*/

public class Test4 {

public static class Demo{//用来演示的类。

private String str ="java您好";

}

public static void main(String[] args) throws Exception {

Demo d =new Demo();//创建一个用来演示的Demo对象。

setProperty(d,"str","我在测试");//将对象中str的值设置为字符串中的内容,也就实现了:将obj对象中名为propertyName的属性的值设置为value.

System.out.println(d.str);//输出更改后的值。

}

//定义一个可以将propertyName的属性的值设置为value的方法。

public static void setProperty(Object obj,String propertyName,Object value) throws Exception{

Class cls =obj.getClass();//获取obj字节码

Field field =cls.getDeclaredField(propertyName);//得到propertyName字段

field.setAccessible(true);//因为对象的属性是私有的,先把权限打开。(暴力反射)

field.set(obj, value);//将传入的obj对象中为propertyName的属性的值设置为value.

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐