• DynaBean
    • 介绍
    • 使用
      • 创建
      • 操作
      • invoke

    DynaBean

    介绍

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

    使用

    我们先定义一个JavaBean:

    1. public static class User{
    2. private String name;
    3. private int age;
    4. public String getName() {
    5. return name;
    6. }
    7. public void setName(String name) {
    8. this.name = name;
    9. }
    10. public int getAge() {
    11. return age;
    12. }
    13. public void setAge(int age) {
    14. this.age = age;
    15. }
    16. public String testMethod(){
    17. return "test for " + this.name;
    18. }
    19. @Override
    20. public String toString() {
    21. return "User [name=" + name + ", age=" + age + "]";
    22. }
    23. }

    创建

    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三个方法,这三个方法也是默认调用原对象的相应方法操作。