A:案例演示
* public void setProperty(Object obj, String propertyName, Object value){},此方法可将obj对象中名为propertyName的属性的值设置为value。
测试类:
package com.heima.test;
public class Test3 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
student s=new student("张三",23);
System.out.println(s);
Tool t=new Tool();
t.setProperty(s,"name", "李四");
System.out.println(s);
}
}
/**
* @author Administrator
*
*/
class student{
private String name;
private int age;
public student() {
// TODO Auto-generated constructor stub
}
public student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "student [name=" + name + ", age=" + age + "]";
}
}
工具类:
package com.heima.test;
import java.lang.reflect.Field;
public class Tool {
// 此方法可将obj对象中名为propertyName的属性的值设置为value。
public void setProperty(Object obj, String propertyName, Object value) throws Exception{
Class clazz=obj.getClass();//获取字节码对象
Field f=clazz.getDeclaredField(propertyName);
f.setAccessible(true);
f.set(obj,value);
}
}