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

运用反照机制实现改变对象的属性值

2013-11-05 
运用反射机制实现改变对象的属性值此处运用反射机制实现改变对象的属性值的功能。以下代码实现功能为:对一

运用反射机制实现改变对象的属性值

此处运用反射机制实现改变对象的属性值的功能。

以下代码实现功能为:

对一个对象中属性类型为String的字段,如果其值不是为"cloud",则将其改成"cloud"。我觉得实现的功能很简单,但很有指导性的意义。读者慢慢体会吧。

?

ReflectBean代码:

?

ReflectTest代码:

package com.cloud.reflect;import java.lang.reflect.Field;public class ReflectTest {public static void main(String[] args) throws Exception {ReflectBean reflect = new ReflectBean("chris", "cloud");changeFieldValue(reflect);System.out.println(reflect.toString());}public static void changeFieldValue(Object obj) throws Exception {Field[] fields = obj.getClass().getDeclaredFields();for (Field field : fields) {//由于字段是private类型,为了能够访问,进行“暴力”反射设置field.setAccessible(true);//此处应该用“==”为好,因为字节码只有一份if (field.getType() == String.class) {String oldStr = (String) field.get(obj);if (!"cloud".equals(oldStr)) {field.set(obj, "cloud");}}}}}

?

?

?

热点排行