Java注解(Annotation)是Java 5开始引入的一种注释机制,是一种元数据,能够以注解的形式声明代码的一些特定信息,与Javadoc不同,注解可以通过反射获取到注解内容,因此注解也被称为元数据。
Java 提供了四种元注解,专门负责注解其他的注解,分别是:
除了这四个元注解,Java 还提供了一些用于声明注解的元素的注解,包括:
Java中内置的一些注解,如:
除了内置注解,Java还支持自定义注解,可以通过 @interface 关键字定义注解,如下所示:
public @interface MyAnnotation {
String value() default "";
}
其中,value() 方法是注解的一个元素,可以通过 MyAnnotation 注解来访问该元素,如下所示:
@MyAnnotation("hello")
public class MyClass {
...
}
自定义注解还可以有默认值,如下所示:
public @interface MyAnnotation {
String value() default "";
int age() default 18;
}
在使用时,可以直接使用默认值,也可以设置成自己想要的值,如下所示:
@MyAnnotation
public class MyClass {
...
}
@MyAnnotation(value = "hello", age = 20)
public class MyClass2 {
...
}
使用注解可以给代码添加更多的信息,比如给方法添加相应的注释:
public class Test {
@MyAnnotation(value = "hello")
public void sayHello() {
System.out.println("Hello World!");
}
}
也可以给类添加注解:
@MyAnnotation(value = "hello")
public class Test {
...
}
在程序中,可以使用反射获取到类、方法或者字段中的注解信息,如下所示:
// 获取类上的注解
MyAnnotation annotation = Test.class.getAnnotation(MyAnnotation.class);
// 获取方法上的注解
MyAnnotation annotation = Test.class.getMethod("sayHello").getAnnotation(MyAnnotation.class);
// 获取字段上的注解
MyAnnotation annotation = Test.class.getDeclaredField("name").getAnnotation(MyAnnotation.class);
Java注解是一种声明式的编程方式,可以为代码添加更多的信息,使代码更加简洁、易读。除了内置注解外,Java还支持自定义注解,可以根据自己的需求来定义注解,并在代码中使用。不过,在使用注解时,也要注意不要过度使用,避免代码过于复杂难以维护。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com
