Verhalten beim Tragen von Java-Anmerkungsnamen

Ich fing an, Java zu schreiben und begann, Anmerkungen zu verwenden.

Plötzlich fragte ich mich, was passieren würde, wenn sich der Name der von mir erstellten Anmerkung mit einer anderen Bibliothek überschneiden würde. darüber.

Im Fall einer Klasse können Sie denselben Namen für die Klasse verwenden, indem Sie ihn explizit mit einem Paketnamen angeben. Ich konnte mir jedoch nicht vorstellen, dass der Paketname an die Annotation angehängt wird, und habe daher eine einfache Annotation erstellt. ..

Solange Sie die Paketnamen trennen, können Sie eine Klasse mit demselben Namen erstellen, damit Sie sie erstellen können. Daher habe ich für jedes a-Paket und jedes b-Paket A-Anmerkungen erstellt.

package a;

public @interface A {
}
package b;

public @interface A {
}

Es ist sehr einfach, weil es keine Verarbeitung gibt.

Lass es uns benutzen! Als Ergebnis der Codierung, indem es der Intelligenz überlassen wurde, wurde es wie folgt

import a.A;

public class Main {
    @A //Dies ist eine vom Import deklarierte A-Annotation
    // @a.A //Es ist das gleiche wie ↑! Ich kommentiere aus, weil ich wütend werde, aber natürlich ist diese Art zu schreiben in Ordnung
    @b.A
    public static void main(String[] args){
    }
}

Der Paketname wird unverändert eingegeben.

Zusammenfassung

Vielleicht ist es eine berühmte Geschichte für Java-Ingenieure, aber selbst wenn Sie einen Anmerkungsnamen tragen, können Sie ihn wie eine Klasse richtig verwenden. Und wenn der Paketname an die Anmerkung angehängt ist, scheint dies ein wenig unangenehm oder schwierig zu sein, bis Sie sich daran gewöhnt haben, weil es sich ungewohnt anfühlt. Ich war vorerst erleichtert, dass es kein Problem gab, auch wenn sich die Namen der Anmerkungen zwischen den Bibliotheken überschnitten.

Recommended Posts

Verhalten beim Tragen von Java-Anmerkungsnamen
[Java] Anmerkung
[Java] Anmerkung
Verhalten, wenn von Lombok erzeugte Getter dupliziert werden
Wenn Java-Tests Umgebungsvariablen enthalten
Verhalten beim Aufrufen von Java-Argumentmethoden mit variabler Länge aus Scala / Kotlin / Java
[Java] Sortiertipps beim Mischen von Zeichenfolgen und Zahlen
Wenn Sie Annotation in Java 8 dynamisch ersetzen möchten
Geschichte der Java-Annotationen
Informationen zum Verhalten beim Erstellen einer Dateizuordnung mit Java