目录
面试回答
Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。
Java 的注解,可以说是一种标识,标识一个类或者一个字段,常常是和反射、AOP 结合起来使用。中间件一般会定义注解,如果某些类或字段符合条件,就执行某些能力。
知识扩展
什么是元注解
说简单点,就是定义其他注解的注解。
比如 Override
这个注解,就不是一个元注解。而是通过元注解定义出来的。
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
这里面的 @Target
,@Retention
就是元注解。
元注解有四个:@Target
(表示该注解可以用于什么地方),@Retention
(表示在什么级别保存该注解信息)、@Documented
(将此注解包含在 javadoc 中)、@Inherited
(允许子类继承父类中的注解)。
如何判断注解
可以通过反射来判断类、方法,字段上是否有某个注解以及获取注解中的值,获取某个类中方法上的注解代码示例如下:
public static void main(String[] args) throws Exception {
TestController controller=new TestController();
Class clz= controller.getClass();
Method[] methods=clz.getMethods();
for (Method method:methods){
if (method.isAnnotationPresent(GetMapping.class)){
String name=method.getAnnotation(GetMapping.class).name();
System.out.println(name);
}
}
}