Maison > Java > javaDidacticiel > Les annotations Java peuvent-elles utiliser des tableaux ou des constantes comme valeurs de paramètres ?

Les annotations Java peuvent-elles utiliser des tableaux ou des constantes comme valeurs de paramètres ?

Barbara Streisand
Libérer: 2024-12-05 08:34:11
original
603 Les gens l'ont consulté

Can Java Annotations Use Arrays or Constants as Parameter Values?

Valeurs constantes dans les annotations Java

Il est courant en Java de définir des interfaces qui stockent des tableaux de constantes à utiliser comme paramètres d'annotation. Par exemple, vous pouvez avoir une interface comme celle-ci :

public interface FieldValues {
   String[] FIELD1 = new String[]{"value1", "value2"};
}
Copier après la connexion

Lors de l'annotation de classes, vous souhaiterez peut-être utiliser ces constantes comme valeurs de paramètres, quelque chose comme ceci :

@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
   ....
}
Copier après la connexion

Cependant, cette approche nécessite de spécifier les valeurs de chaîne dans chaque instance d'annotation. Il serait plus pratique d'utiliser les constantes directement :

@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
   ....
}
Copier après la connexion

Malheureusement, Java ne permet pas d'utiliser des tableaux ou des constantes comme valeurs de paramètres d'annotation. En effet, les annotations sont résolues au moment de la compilation et seules les valeurs ou chaînes primitives peuvent être utilisées comme constantes au moment de la compilation.

Par conséquent, il n'existe aucun moyen direct d'obtenir le comportement souhaité en Java. Le tableau dans FieldValues ​​n'est pas vraiment constant, car ses éléments peuvent être modifiés au moment de l'exécution par n'importe quel code qui y a accès. Pour garantir une véritable immuabilité, vous pouvez envisager d'utiliser une classe immuable pour envelopper les valeurs de chaîne.

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