Bonjour,
il est possible de récupérer les annotations d'un champ au runtime, mais est-il possible d'en rajouter ?
Si cela n'est pas possible, comment ajouter un flag à un champ au runtime ?
Merci.
Version imprimable
Bonjour,
il est possible de récupérer les annotations d'un champ au runtime, mais est-il possible d'en rajouter ?
Si cela n'est pas possible, comment ajouter un flag à un champ au runtime ?
Merci.
Il n'est pas possible d'ajouter des annotations au runtime.
Ca veut dire quoi pour toi : "ajouter un flag à un champs au runtime" ?
Donne un exemple ;)
Merci de ta réponse.
Ajouter un flag signifie ajouter une métadonnée propre à l'application à un champ.
Ce flag est censé indiquer si le champ doit être utilisé dans une recherche multi-critères.
Mais bon, c'est faisable en wrappant l'objet dans un autre qui se chargera de lister les champs non concernés par la recherche.
Salut,
Un wrapper peut parfois être lourd à mettre en place...
Je ne sais pas si cela pourrait te convenir, mais voici une autre solution :
- Tu utilises une classe qui servira de descritif concernant les champs, éventuellement en s'initialisant avec les métadonnées.
- Tu associes ces descriptifs avec les objets en utilisant une Map (clef : l'objet / valeur : ton descriptif), et il te suffira donc de faire un get() pour récupérer le descriptif d'une instance.
- Et en utilisant une WeakHashMap tu laisses le GC libérer proprement la mémoire : lorsque la clef d'une WeakHashMap n'est plus utilisé, le GC va libérer le couple clef/valeur de la map ;)
a++
C'est une bonne idée dans un cadre plus général, mais là le problème est plus basique :
Il n'y a qu'une seule caractéristique, qui de plus est un booléen.Citation:
Tu utilises une classe qui servira de descritif concernant les champs, éventuellement en s'initialisant avec les métadonnées.
En fait il n'y a jamais plusieurs instances à traiter en même temps.Citation:
Tu associes ces descriptifs avec les objets en utilisant une Map (clef : l'objet / valeur : ton descriptif), et il te suffira donc de faire un get() pour récupérer le descriptif d'une instance.
Très intéressant.Citation:
Et en utilisant une WeakHashMap tu laisses le GC libérer proprement la mémoire : lorsque la clef d'une WeakHashMap n'est plus utilisé, le GC va libérer le couple clef/valeur de la map
Finalement un wrapper avec une "List<String>" qui stocke le nom des champs à ne pas inclure a fait l'affaire.