2010-09-30 12 views
1

Je vois l'exemple de code suivant sur la façon dont un bean Java peut être créé dynamiquement. Ce que je n'arrive pas à comprendre, c'est comment je peux mettre à jour l'état d'une instance une fois créée. Donc dans l'exemple suivant comment puis-je définir la valeur de foo sur "footest" pour par exemple bean?Ajout d'un état au bean généré via BeanGenerator de CGLIB

BeanGenerator bg = nouveau BeanGenerator();

bg.addProperty ("foo", Double.TYPE);

bg.addProperty ("bar", String.class);

Objet bean = bg.create();

Merci Kumar

Répondre

2

Quelques moyens viennent à l'esprit:

1/Appel "setFoo()" sur "haricot" en utilisant la réflexion. Pas beau. 2/Utilisez une bibliothèque d'aide pour faire la même chose - par exemple:

Commons-Beanutils o.a.c.BeanUtils.PropertyUtils.setProperty (bean, "foo", "footest").

Cette façon fonctionne bien pour moi. Vous pouvez utiliser l'équivalent Spring si vous utilisez déjà Spring.

3/Utilisez BeanMap de CGLIB sur votre nouveau bean. par exemple.

Carte beanMap = BeanMap.create (bean); beanMap.put ("foo", "footest");