Génération dynamique de valeurs d'annotation Java
Cette question explore le défi de la génération dynamique de valeurs pour les annotations Java L'auteur souhaite annoter. classes avec des valeurs dérivées de méthodes, mais rencontre une erreur en essayant d'utiliser une valeur finale statique générée.
Le compilateur impose l'exigence selon laquelle les valeurs d'attribut d'annotation doivent être des expressions constantes, selon le message d'erreur : "La valeur de l'attribut d'annotation MyInterface.aString doit être une expression constante." Cette restriction provient du fait que les annotations d'exécution sont évaluées lors de la compilation et que les valeurs générées ne sont pas disponibles à ce moment-là.
Malheureusement. , il n’existe pas de solution toute faite pour cette méthode de problème. Pour l'annotation RetentionPolicy.RUNTIME, le compilateur évalue les métadonnées de l'annotation au moment de la compilation, mais GENERIC_GENERATED_NAME est toujours inconnu au moment de la compilation. Dans le même temps, l'annotation RetentionPolicy.SOURCE est supprimée après la compilation, de sorte que ces valeurs générées ne sont jamais reconnues.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!