DynaBean

介绍

DynaBean是使用反射机制动态操作JavaBean的一个封装类,通过这个类,可以通过字符串传入name方式动态调用get和set方法,也可以动态创建JavaBean对象,亦或者执行JavaBean中的方法。

使用

我们先定义一个JavaBean:

  1. // Lombok注解
  2. @Data
  3. public static class User{
  4. private String name;
  5. private int age;
  6. public String testMethod(){
  7. return "test for " + this.name;
  8. }
  9. }

创建

  1. DynaBean bean = DynaBean.create(user);
  2. //我们也可以通过反射构造对象
  3. DynaBean bean2 = DynaBean.create(User.class);

操作

我们通过DynaBean来包装并操作这个Bean

  1. User user = new User();
  2. DynaBean bean = DynaBean.create(user);
  3. bean.set("name", "李华");
  4. bean.set("age", 12);
  5. String name = bean.get("name");//输出“李华”

这样我们就可以像操作Map一样动态操作JavaBean

invoke

除了标准的get和set方法,也可以调用invoke方法执行对象中的任意方法:

  1. //执行指定方法
  2. Object invoke = bean2.invoke("testMethod");
  3. Assert.assertEquals("test for 李华", invoke);

说明: DynaBean默认实现了hashCode、equals和toString三个方法,这三个方法也是默认调用原对象的相应方法操作。