【Anmerkung】@Retention-Meta-Anmerkung

@RetentionEs handelt sich um eine der Meta-Annotationen in Java, mit der die Aufbewahrungsrichtlinie für Anmerkungen angegeben wird. Meta-Annotationen sind Annotationen, die dazu dienen, andere Annotationen zu kommentieren. @RetentionIhr Zweck besteht darin, dem Compiler mitzuteilen, wie Annotationen verarbeitet werden sollen.

@RetentionEs gibt drei Werte, nämlich RetentionPolicy.SOURCE, RetentionPolicy.CLASSund RetentionPolicy.RUNTIME.

RetentionPolicy.SOURCE::

  • Anmerkungen bleiben nur auf Quellcodeebene erhalten und werden zur Kompilierungszeit verworfen . Dies bedeutet, dass die Anmerkungsinformationen nicht in der kompilierten Klassendatei (.class-Datei) enthalten sind. Diese Aufbewahrungsrichtlinie wird normalerweise beim Schreiben von Tools zur Kompilierungszeit verwendet.
    @Retention(RetentionPolicy.SOURCE) 
    public @interface MyAnnotation {
          
          
           // annotation details 
    }
    

RetentionPolicy.CLASS::

  • Anmerkungen bleiben zur Kompilierungszeit erhalten und werden in die kompilierte Klassendatei aufgenommen, aber zur Laufzeit verworfen . Dies ist die Standardaufbewahrungsrichtlinie.
    @Retention(RetentionPolicy.CLASS) 
    public @interface MyAnnotation {
          
          
           // annotation details 
    }
    

RetentionPolicy.RUNTIME::

  • Anmerkungen bleiben zur Kompilierungszeit und zur Laufzeit erhalten , sodass Anmerkungsinformationen zur Laufzeit durch Reflektion abgerufen werden können. Diese Aufbewahrungsrichtlinie wird normalerweise für benutzerdefinierte Anmerkungen verwendet, die zur Laufzeit verarbeitet werden müssen .

    @Retention(RetentionPolicy.RUNTIME) 
    public @interface MyAnnotation {
          
          
           // annotation details 
    }
    

    Wenn Sie Anmerkungen anpassen, entscheiden Sie sich normalerweise RetentionPolicy.RUNTIMEdafür, dass die Anmerkungsinformationen durch Reflektion zur Laufzeit abgerufen werden können. Zum Beispiel:

    @Retention(RetentionPolicy.RUNTIME) 
    public @interface RpcApiEntry {
          
          
           // annotation details
    }
    

Wählen Sie bei der Verarbeitung benutzerdefinierter Anmerkungen eine geeignete Aufbewahrungsstrategie basierend auf den spezifischen Anforderungen.

Supongo que te gusta

Origin blog.csdn.net/weixin_45188218/article/details/135365174
Recomendado
Clasificación