Heim  >  Artikel  >  Java  >  Implementierungslösung für benutzerdefinierte Java-Annotationsschnittstellen

Implementierungslösung für benutzerdefinierte Java-Annotationsschnittstellen

高洛峰
高洛峰Original
2017-01-23 15:26:551830Durchsuche

Java-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字节码文件中存在,在运行时可以通过反射获取到
1.2. @Target: Definieren Sie den Zweck von Anmerkungen


ElementType kann mehrere Elemente haben und eine Annotation kann für eine Klasse, Methode, ein Feld usw. sein.
@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.3. Gibt an, dass die Annotation in Javadoc eingefügt wird.

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

Java-Code
@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.METHOD) 
public @interface HelloWorld { 
public String name() default ""; 
}


4. Java-Reflexionsmechanismus kann dabei helfen, Anmerkungen zu erhalten:

Java-Code
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!

Stellungnahme:
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