Ich denke, dass dies in Java möglicherweise nicht möglich ist, da Annotation und ihre Parameter zur Kompilierungszeit aufgelöst werden. Ich habe eine Schnittstelle wie folgt:
public interface FieldValues {
String[] FIELD1 = new String[]{"value1", "value2"};
}
und eine andere Klasse als,
@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
....
}
Ich markiere viele Klassen mit der Annotation und möchte wissen, ob ich es vermeiden kann, die Zeichenfolgen in jeder Annotation anzugeben, die ich stattdessen lieber verwenden würde
@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
....
}
Dies führt jedoch zu Kompilierungsfehlern, z. B. sollte der Annotationswert ein Array-Initialisierer usw. sein. Weiß jemand, wie ich eine String-Konstante oder eine String [] -Konstante verwenden kann, um einer Annotation einen Wert zu liefern?