Heim > Java > javaLernprogramm > Können Java-Annotationen Arrays oder Konstanten als Parameterwerte verwenden?

Können Java-Annotationen Arrays oder Konstanten als Parameterwerte verwenden?

Barbara Streisand
Freigeben: 2024-12-05 08:34:11
Original
605 Leute haben es durchsucht

Can Java Annotations Use Arrays or Constants as Parameter Values?

Konstante Werte in Java-Annotationen

In Java ist es üblich, Schnittstellen zu definieren, die Arrays von Konstanten speichern, die als Anmerkungsparameter verwendet werden sollen. Beispielsweise könnten Sie eine Schnittstelle wie diese haben:

public interface FieldValues {
   String[] FIELD1 = new String[]{"value1", "value2"};
}
Nach dem Login kopieren

Beim Annotieren von Klassen möchten Sie diese Konstanten möglicherweise als Parameterwerte verwenden, etwa so:

@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
   ....
}
Nach dem Login kopieren

Allerdings Dieser Ansatz erfordert die Angabe der Zeichenfolgenwerte in jeder Annotationsinstanz. Es wäre bequemer, die Konstanten direkt zu verwenden:

@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
   ....
}
Nach dem Login kopieren

Leider erlaubt Java nicht die Verwendung von Arrays oder Konstanten als Annotationsparameterwerte. Dies liegt daran, dass Anmerkungen zur Kompilierungszeit aufgelöst werden und nur primitive Werte oder Zeichenfolgen als Konstanten zur Kompilierungszeit verwendet werden können.

Daher gibt es in Java keinen direkten Weg, das gewünschte Verhalten zu erreichen. Das Array in FieldValues ​​ist nicht wirklich konstant, da seine Elemente zur Laufzeit von jedem Code geändert werden können, der Zugriff darauf hat. Um echte Unveränderlichkeit zu gewährleisten, könnten Sie erwägen, eine unveränderliche Klasse zum Umschließen der Zeichenfolgenwerte zu verwenden.

Das obige ist der detaillierte Inhalt vonKönnen Java-Annotationen Arrays oder Konstanten als Parameterwerte verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage