Problème :
En Java, est-il possible d'initialiser des paramètres d'annotation avec une chaîne constantes ou constantes de tableau ? Les paramètres d'annotation sont évalués au moment de la compilation, ce qui peut empêcher cette fonctionnalité.
Un exemple de la syntaxe souhaitée est :
@SomeAnnotation(locations = FieldValues.FIELD1) public class MyClass { .... }
Où FieldValues est une interface avec un tableau constant FIELD1.
Réponse :
Selon la spécification du langage Java 15.28, les constantes de compilation ne peuvent être que des primitives et des chaînes. Cela signifie qu'il n'est pas possible d'utiliser une constante tableau pour initialiser un paramètre d'annotation.
Explication :
Les annotations sont évaluées au moment de la compilation et les valeurs qu'elles contiennent doit être connu à ce moment-là. Les tableaux ne sont pas des constantes à la compilation car leurs éléments peuvent être modifiés au moment de l'exécution. Par conséquent, il n'est pas possible d'utiliser une constante de tableau comme paramètre d'annotation.
Solutions possibles :
Remarque :
Même si le tableau est défini comme final, ce n'est toujours pas une constante de compilation et ses éléments peuvent être modifiés de manière réfléchie .
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!