A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.itcast_01;
import java.lang.reflect.Field;
//这是工具类
//通过一个方法反射为Object obj对象的propertyName属性设置为value;
public class Tool {
public void setProperty(Object obj, String propertyName,Object value)
   throws NoSuchFieldException, SecurityException,
   IllegalArgumentException, IllegalAccessException {
  // 获取字节码文件对象
  Class c = obj.getClass();
  // 获取成员变量
  Field nameField = c.getDeclaredField("propertyName");
  // 取消检查
  nameField.setAccessible(true);
  // 赋值
  nameField.set(obj, value);
}
}

package cn.itcast_01;
//这是测试类
public class ToolDemo {
public static void main(String[] args) throws NoSuchFieldException,
SecurityException, IllegalArgumentException, IllegalAccessException {
  Person p=new Person();
  
  Tool t=new Tool();
  t.setProperty(p,"name", "林青霞");
  t.setProperty(p, "age", 27);
  System.out.println(p);
}
}
class Person{
private String name;
private int age;
@Override
public String toString() {
  return "Person [name=" + name + ", age=" + age + "]";
}

}

1 个回复

倒序浏览
都厉害啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马