Maison > Java > javaDidacticiel > Les paramètres d'annotation en Java peuvent-ils être initialisés avec des constantes de chaîne ou de tableau ?

Les paramètres d'annotation en Java peuvent-ils être initialisés avec des constantes de chaîne ou de tableau ?

Susan Sarandon
Libérer: 2024-11-28 07:10:12
original
748 Les gens l'ont consulté

Can Annotation Parameters in Java Be Initialized with String or Array Constants?

Initialisation des paramètres d'annotation avec des constantes de chaîne

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 {
   ....
}
Copier après la connexion

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 :

  • Utiliser un tableau fixe : Définissez les valeurs du tableau directement dans le paramètre d'annotation, en vous assurant qu'elles restent constantes tout au long du programme.
  • Utiliser le wrapper classes : Créez une classe wrapper qui encapsule un tableau non final et fournit un accès constant à ses éléments.
  • Utilisez des outils de pré-processeur : Utilisez des outils de pré-processeur tels que des annotations ou processeurs d'annotations pour générer les constantes nécessaires pendant compilation.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal