Chinaunix首页 | 论坛 | 博客
  • 博客访问: 255423
  • 博文数量: 164
  • 博客积分: 60
  • 博客等级: 民兵
  • 技术积分: 1129
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 21:55
文章分类

全部博文(164)

文章存档

2017年(2)

2015年(67)

2014年(95)

我的朋友

分类: Java

2015-04-29 17:04:19



点击(此处)折叠或打开

  1. public class Tool {
  2.     public void setProperty(Object obj, String propertyName, Object value)
  3.             throws NoSuchFieldException, SecurityException,
  4.             IllegalArgumentException, IllegalAccessException {
  5.         // 根据对象获取字节码文件对象

  6.         Class c = obj.getClass();
  7.         // 获取该对象的propertyName成员变量

  8.         Field field = c.getDeclaredField(propertyName);
  9.         // 取消访问检查

  10.         field.setAccessible(true);
  11.         // 给对象的成员变量赋值为指定的值

  12.         field.set(obj, value);
  13.     }
  14. }


点击(此处)折叠或打开

  1. public class ToolDemo {
  2.     public static void main(String[] args) throws NoSuchFieldException,
  3.             SecurityException, IllegalArgumentException, IllegalAccessException {
  4.         Person p = new Person();
  5.         Tool t = new Tool();
  6.         t.setProperty(p, "name", "林青霞");
  7.         t.setProperty(p, "age", 27);
  8.         System.out.println(p);
  9.         System.out.println("-----------");

  10.         Dog d = new Dog();

  11.         t.setProperty(d, "sex", '男');
  12.         t.setProperty(d, "price", 12.34f);

  13.         System.out.println(d);
  14.     }
  15. }

  16. class Dog {
  17.     char sex;
  18.     float price;

  19.     @Override
  20.     public String toString() {
  21.         return sex + "---" + price;
  22.     }
  23. }

  24. class Person {
  25.     private String name;
  26.     public int age;

  27.     @Override
  28.     public String toString() {
  29.         return name + "---" + age;
  30.     }
  31. }

阅读(585) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~