反射_通过反射写一个通用的设置某个对象的某个属性为指定的值

来源:互联网 发布:2017网络情歌 编辑:程序博客网 时间:2024/06/07 02:22

package cn.itcast.test;import java.lang.reflect.Field;/* * 写一个方法 * public void setPropertv(Object obj,String propertvName,Object value){ * } *  * 此方法可将obj对象中名为propertvName的属性值设置为value */public class Tool {public void setPropertv(Object obj, String propertvName, Object value)throws Exception {// 根据对象获取字节码文件对象Class c = obj.getClass();// 获取该对象的propertvName成员变量Field f = c.getDeclaredField(propertvName);// 取消访问检查f.setAccessible(true);// 给对象的成员变量赋值为指定的值f.set(obj, value);}}

package cn.itcast.test;public class ToolDemo {public static void main(String[] args) throws Exception {Person p = new Person();Tool t = new Tool();t.setPropertv(p, "name", "林青霞");t.setPropertv(p, "age", 27);System.out.println(p);System.out.println("--------------");Dog d = new Dog();t.setPropertv(d, "sex", '男');t.setPropertv(d, "price", 12.24f);System.out.println(d);}}class Dog {char sex;float price;@Overridepublic String toString() {return sex + "---" + price;}}class Person {private String name;public int age;public String toString() {return name + "---" + age;}}












0 0
原创粉丝点击