Creo que esto puede no ser posible en Java porque la anotación y sus parámetros se resuelven en tiempo de compilación. Tengo una interfaz de la siguiente manera,Cómo proporcionar valor a una anotación desde un Java constante
public interface FieldValues {
String[] FIELD1 = new String[]{"value1", "value2"};
}
y otra clase,
@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
....
}
taco muchas clases con la anotación y me gustaría saber si puedo evitar especificar las cadenas en cada anotación I que preferirían que utilizar
@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
....
}
Sin embargo, esto da errores de compilación como valor de anotación debe ser una matriz de inicialización, etc. ¿alguien sabe cómo puedo utilizar una cadena constante o String [] constante para proporcionar valor a una anotación?
¡Enumera también! :) :) – TacB0sS
Creo que la URL de referencia murió. Es la especificación de Java en constantes a lo que se refería? Es decir, http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.28 –
@ TacB0sS, las enumeraciones no son expresiones constantes. – jaco0646