📅  最后修改于: 2023-12-03 15:32:01.533000             🧑  作者: Mango
在Java中,注解(Annotation)是一种将元数据(metadata)与代码(如类、方法、变量等)结合在一起的语法元素,用于为代码提供更多的信息。
注解是Java语言中引入的一种元数据形式,可以用来为程序中的代码提供额外的信息,这些信息可以用于代码的调试、优化及一些特定的处理等。
注解是由“@注解名”来表示的,放在代码的某一行上面,一般放在类、方法、变量的声明之前,用来标记他们的特征。
在Java语言中,所有的注解都有一个特定的元注解@Retention来作它的保留策略。它是Java语言针对Annotation添加的一个元信息,用来表示注解的保留级别。@Retention取值策略有三种:
在Java中,可以使用反射机制来获取程序中的注解信息,构造函数中也提供了获取注解方法的相关 API,其中就包含了 getAnnotation() 方法。getAnnotation() 方法用来获取用此构造函数声明的注解。具体使用方式如下:
public T getAnnotation(Class<T> annotationClass)
该方法返回 annotationClass 的实例,如果此构造函数没有注解,则返回 null。
下面通过一个例子来展示 getAnnotation() 方法的具体使用方式。
定义一个注解:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.CONSTRUCTOR)
public @interface MyConstructorAnnotation {
String author() default "anonymous";
String date();
}
定义一个类并使用该注解:
public class MyClass {
@MyConstructorAnnotation(author = "user1", date = "2022-06-30")
public MyClass() {}
}
获取MyClass类构造函数上的注解:
Constructor constructor = MyClass.class.getConstructor();
MyConstructorAnnotation annotation = constructor.getAnnotation(MyConstructorAnnotation.class);
System.out.println("author: " + annotation.author());
System.out.println("date: " + annotation.date());
输出结果:
author: user1
date: 2022-06-30
在这个例子中,我们定义了一个 MyConstructorAnnotation 注解,并标记在 MyClass 类的构造函数上。然后,我们通过反射获取该构造函数的注解信息,输出该注解的 author 和 date 属性值。
通过这个例子,我们可以看到,如何使用 getAnnotation() 方法获取构造函数上的注解信息。