将状态添加到通过CGLIB的BeanGenerator生成的bean

时间:2010-09-30 16:54:55

标签: cglib

我看到以下关于如何动态创建Java Bean的示例代码。我无法弄清楚的是我如何在创建后更新实例的状态。 因此,在下面的示例中,如何将foo的值设置为“footest”,例如bean?

BeanGenerator bg = new BeanGenerator();

bg.addProperty(“foo”,Double.TYPE);

bg.addProperty(“bar”,String.class);

Object bean = bg.create();

由于 库马尔

1 个答案:

答案 0 :(得分:2)

有几种想法:

1 /使用反射在“bean”上调用“setFoo()”。不漂亮。

2 /使用帮助程序库执行相同的操作 - 例如Commons-Beanutils o.a.c.BeanUtils.PropertyUtils.setProperty(bean,“foo”,“footest”)。

这种方式很适合我。如果您已经使用Spring,则可以使用Spring等效项。

3 /在你的新bean上使用CGLIB的BeanMap。 e.g。

Map beanMap = BeanMap.create(bean); beanMap.put(“foo”,“footest”);