Je veux savoir pourquoi les annotations java sont tellement utilisées ... Je sais qu'elles ont remplacé la configuration xml dans jpa par exemple, mais pourquoi cette configuration est-elle utilisée? Considérez ce code: Pourquoi les annotations java?
@Entity
class Ent{
// some fields
}
//... somewhere in the other file far far away
class NonEnt{
// whatever here
}
Maintenant, quand j'essaye de mettre ceci dans le contexte de persistance, avec la méthode persist de
EntityManager
, j'obtiens l'erreur d'exécution (mieux serait d'obtenir l'erreur de compilation) en essayant de persister l'instance
NonEnt
. Il y a une solution évidente pour moi, forcer les entités à implémenter une interface sans méthode au lieu d'utiliser @Annotations. Mais ce n'est pas populaire parmi les concepteurs de cadre, quel est l'inconvénient de cette solution?
Merci d'avoir répondu ...
C'est une question de conception pour les développeurs de cette bibliothèque. Vous avez raison de dire que les erreurs de compilation sont meilleures que les erreurs d'exécution. Peut-être que le compilateur Java devrait avoir un moyen de spécifier les annotations d'un argument? Jusqu'à ce qu'il le fasse, une interface de marqueur serait mieux. –
Il y a trop de demandes pour fermer les questions de nos jours ... pourquoi les gens ne justifient-ils pas les raisons de fermer une question? –
La rétrocompatibilité est la cause d'un si grand nombre de ces décisions de décision. Quand ils avaient seulement des fichiers XML, ils pouvaient vouloir ne pas avoir besoin de modifier les classes java. Cependant, maintenant ils ne peuvent pas mandater une interface sans casser les anciennes versions. Avec l'annotation, vous pouvez utiliser ce fichier OU un fichier XML. Pour avoir une interface, vous devez changer tout le code pour l'avoir, même les utilisateurs de XML. –