深入理解Java注解
Java注解(Annotation)是JDK5.0引入的一种注释机制。
注解是与类、方法、变量等相关的额外信息提供者,可用于包含编译时信息、运行时信息等。
注解的本质是一个接口,通过反射机制获取注解。
注解的使用类似于XML配置,但与之不同的是,注解是源代码的一部分,而XML是独立的配置文件。
注解的使用方法:
- 使用@interface关键字定义注解,内部定义成员,成员的类型是有限的,包括基本类型、String、Class、enum、注解类型,以及以上类型的数组。
- 成员可以设置默认值,使用default关键字。
- 注解可以通过注解的元注解来限制使用范围,例如@Retention,@Target,@Documented,@Inherited。
- 注解可以通过反射获取注解信息。
例如,定义一个注解@MyAnnotation:
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value() default "Hello";
}
使用注解@MyAnnotation:
public class Test {
@MyAnnotation(value = "World")
public void testMethod() {
}
}
获取注解信息:
public class Test {
@MyAnnotation(value = "World")
public void testMethod() {
}
public static void main(String[] args) {
try {
Method method = Test.class.getMethod("testMethod");
if (method.isAnnotationPresent(MyAnnotation.class)) {
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
System.out.println(annotation.value());
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
}
以上代码演示了如何定义、使用和获取注解信息。
评论已关闭