文章目录
前言:现在了解注解主要是为了看懂源码,在后面Spring框架中才会着重去使用注解。
1. 注解 Annotation
- 注解:注解不影响程序逻辑,但是注解会被编译和运行,相当于嵌入在代码中的补充信息。
- 注解类的定义:
2. JDK中常用的注解
2.1 元注解(用于修饰注解的注解)
2.1.1 @Target
- @Target修饰的注解a,则能够指定注解a能在哪些地方使用。
- 10种值:
- 同时赋多个值:
2.1.2 @Retention
- @Retention指定注解保留的时长。
- 三种值—value:
RetentionPolicy.SOURCE
:所修饰的注解只保留到java源码中,编译后就失效,即不保存在class文件中RetentionPolicy.CLASS
:这是默认值。所修饰的注解保留在class文件中,当在jvm中运行程序时失效。RetentionPolicy.RUNTIME
:所修饰的注解一直到运行程序时也有效。- 例子:
2.1.3 @Decumented
@Decumented指定所修饰的注解是否会在javadoc工具提取的文档中显示。
2.1.4 @Inherited
@Inherited所修饰的注解a,如果注解a修饰A类(不是修饰属性、方法等,而是修饰类),B类继承A类,则B类也默认继承了注解a。
2.2 常用注解
2.2.1 @Override
- @Override表示重写某方法。
- 如果重写的方法不加这个注解也会重写方法,这个注解更多的是起到语法校验的功能。比如,如果重写的方法在父类中不存在,则在编译阶段就会报错。
- @Override只能装饰方法,不能装饰类、包、属性等 【查看源码即可知道】
2.2.2 @Deprecated
- @Deprecated表示某个类或方法已过时。
- 过时不代表不能使用,还是能使用,只是不推荐。
- @Deprecated能装饰类、属性、方法、构造器等。【查看源码即可知道】
- @Deprecated一般用于版本升级的过渡。
2.2.3 @SuppressWarnings
@SuppressWarnings表示抑制编译器的警告,比如某变量定义了但没有被使用等。