DynaBean
# 介绍
动态Bean,通过反射对Bean的相关方法做操作,支持Map和普通Bean和Collection
# 方法
# 常用方法
of创建一个DynaBeanget获得字段对应值set设置字段对应值containsProp检查是否有指定名称的bean属性safeGet获得字段对应值,获取异常返回nullinvoke执行原始Bean中的方法getBean获得原始BeangetBeanClass获得Bean的类型
# 使用
我们先定义一个JavaBean:
// Lombok注解
@Data
public static class User{
private String name;
private int age;
public String testMethod(){
return "test for " + this.name;
}
}
# 使用示范
public void beanTest() {
final User user = new User();
// 创建
final DynaBean bean = DynaBean.of(user);
// final DynaBean bean = DynaBean.of(User.class);
// final DynaBean bean = new DynaBean(User.class);
// 赋值
bean.set("name", "李华");
bean.set("age", 12);
// 获取值
final String name = bean.get("name");
Assertions.assertEquals(user.getName(), name);
final int age = bean.get("age");
Assertions.assertEquals(user.getAge(), age);
// 重复包装测试
final DynaBean bean2 = new DynaBean(bean);
final User user2 = bean2.getBean();
Assertions.assertEquals(user, user2);
//执行指定方法
final Object invoke = bean2.invoke("testMethod");
Assertions.assertEquals("test for 李华", invoke);
}