2015-10-29 13 views
7

In Java 8 können wir separate Dimensionen des Arrays mit Anmerkungen markieren (siehe Abschnitt 10.2 in JLS 8). Zum BeispielMarkieren Sie separate Dimensionen eines Arrays mit Anmerkungen

int @a[] a; 

int @a[] @b[] a; 

void someMethod(int @a[] @b... y) {} 

Dann können wir solche Erklärungen mit Java Reflection analysieren einige spezifische Logik zu implementieren.

Kennen Sie praktische Anwendungen dieser Funktion in echten Java-Frameworks oder Java-Bibliotheken?

Antwort

1

Ein Beispiel, bei dem diese Art der Annotationsplazierung nützlich sein könnte, ist die Checker Framework.

Es könnte verwendet werden, um veränderbare/unveränderbare oder (nicht) nullbare Zeilen zu erstellen - grundsätzlich was immer Sie wollen, um ein ganzes Array mit, aber nur für eine einzelne Zeile zu kommentieren.

Object @NonNull [] @Nullable [] a; 

Ansonsten könnte es für die Dokumentation verwendet werden, wie Anmerkungen, die den Zweck jeder Dimension erklären.