Je pense que cela n'est pas possible en Java, car l'annotation et ses paramètres sont résolus au moment de la compilation. J'ai une interface comme suit,
public interface FieldValues {
String[] FIELD1 = new String[]{"value1", "value2"};
}
et une autre classe comme,
@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
....
}
Je marque de nombreuses classes avec l'annotation et je voudrais savoir si je peux éviter de spécifier les chaînes de caractères dans chaque annotation ; je préférerais plutôt utiliser
@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
....
}
Cependant, cela donne lieu à des erreurs de compilation, par exemple, la valeur de l'annotation devrait être un initialisateur de tableau, etc. Quelqu'un sait-il comment je peux utiliser une constante String ou String[] pour fournir une valeur à une annotation ?