Eu estou pensando que isso pode não ser possível em Java porque a anotação e seus parâmetros são resolvidos em tempo de compilação. Eu tenho uma interface da seguinte maneira,
public interface FieldValues {
String[] FIELD1 = new String[]{"value1", "value2"};
}
e outra classe como,
@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
....
}
Marquei muitas classes com a anotação e gostaria de saber se posso evitar especificar as strings em todas as anotações que preferiria usar
@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
....
}
No entanto, isso gera erros de compilação, como o valor da anotação, que deve ser um inicializador de matriz etc. Alguém sabe como eu posso usar uma constante String ou uma constante String [] para fornecer valor a uma anotação?