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.
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![]()
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
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.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.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.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.
Partager