


Implementierungslösung für benutzerdefinierte Java-Annotationsschnittstellen
Jan 23, 2017 pm 03:26 PMJava-Anmerkungen sind einige an den Code angehängte Metainformationen, die von einigen Tools zum Parsen und Verwenden während der Kompilierung und Laufzeit verwendet werden und der Erklärungs- und Konfigurationsfunktion dienen.
Anmerkungen haben und können keinen Einfluss auf die eigentliche Logik des Codes haben, sie spielen nur eine unterstützende Rolle. Im Paket java.lang.annotation enthalten.
1. Meta-Annotation
Meta-Annotation bezieht sich auf die Annotation von Annotationen. Einschließlich @Retention @Target @Document @Inherited vier Typen.
1.1. @Retention: Definieren Sie die Aufbewahrungsrichtlinie von Anmerkungen
@Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含 @Retention(RetentionPolicy.CLASS) //默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得, @Retention(RetentionPolicy.RUNTIME)//注解会在class字节码文件中存在,在运行时可以通过反射获取到
@Target(ElementType.TYPE) //接口、类、枚举、注解 @Target(ElementType.FIELD) //字段、枚举的常量 @Target(ElementType.METHOD) //方法 @Target(ElementType.PARAMETER) //方法参数 @Target(ElementType.CONSTRUCTOR) //构造函数 @Target(ElementType.LOCAL_VARIABLE)//局部变量 @Target(ElementType.ANNOTATION_TYPE)//注解 @Target(ElementType.PACKAGE) ///包
1.4 Unterklassen können die Annotation in der übergeordneten Klasse erben.
Das Folgende ist ein Beispiel für eine benutzerdefinierte Annotation
Java-Code
3 Klasse
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface HelloWorld { public String name() default ""; }
4. Java-Reflexionsmechanismus kann dabei helfen, Anmerkungen zu erhalten:
public class SayHello { @HelloWorld(name = " 小明 ") public void sayHello(String name) { System.out.println(name + "say hello world!"); }//www.heatpress123.net }
Mehr Java Artikel zu benutzerdefinierten Annotationsschnittstellen-Implementierungslösungen finden Sie auf der chinesischen PHP-Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Top 4 JavaScript -Frameworks in 2025: React, Angular, Vue, Svelte

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Problem behoben

Node.js 20: wichtige Leistungssteigerung und neue Funktionen

ICEBERG: Die Zukunft von Data Lake Tabellen

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?

Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?
