注解(Annotation)
引入修饰符:@
一、. 基本介绍
-
(1)注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量
等数据信息
-
-
(3)元注解:注解的注解
二、 分类
-
1. 基本注解
-
(1)@Override:限定某个方法,是重写父类方法,该注解只能用于方法
-
-
(3)@SuppressWarnings:抑制编译器警告
-
-
(1)Retention:指定注解的作用范围
-
RetentionPolicy.SOURCE:编译器使用后,直接丢弃这种策略的注释
-
-
RetentionPolicy.RUNTIME::编译器将把注解记录在 class 文件中. 当运行 Java 程序时,JVM 会保留注解. 程序可以通过反射获取该注解
-
-
(3)Documented:指定该注解是否会在 javadoc 体现
-
基本注解
一、@Override
-
(1)@Override 表示指定重写父类的方法(从编译层面验证),如果父类没有 fly 方法,则会报错
-
-
(3)@Override 只能修饰方法,不能修饰其他类、包、属性等等
实际应用:判断某个方法是否重写了父类的方法,若在方法上方添加@Override 注解不报错,则重写
@Override 的源码
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
二、@Deprecated
-
(1)用于表示某个程序元素(类、方法等)已过时
-
-
(3)@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
-
@Deprecated 的源码
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}
三、@SuppressWarnings
1. 介绍:这个注解的作用是忽略一些警告的
使用方法:@SuppressWarnings(“传入一个类型”)
2. 技巧:生成 @SuppressWarnings 时,不用背,直接点击左侧的黄色提示,就可以选择(注意可以指定生成的位置)
3. 所有类型一览表
属性 | 说明 |
---|
all | 抑制所有警告 |
boxing | 抑制与封装/拆装作业相关的警告 |
cast | 抑制与强制转型作业相关的警告 |
dep-ann | 抑制与淘汰注释相关的警告 |
deprecation | 抑制与淘汰的相关警告 |
fallthrough | 抑制与 switch 陈述式中遗漏 break 相关的警告 |
finally | 抑制与未传回 finally 区块相关的警告 |
hiding | 抑制与隐藏变数的区域变数相关的警告 |
incomplete-switch | 抑制与 switch 陈述式(enum case)中遗漏项目相关的警告 |
javadoc | 抑制与 javadoc 相关的警告 |
nls | 抑制与非 nls 字串文字相关的警告 |
null | 抑制与空值分析相关的警告 |
rawtypes | 抑制与使用 raw 类型相关的警告 |
resource | 抑制与使用 Closeable 类型的资源相关的警告 |
restriction | 抑制与使用不建议或禁止参照相关的警告 |
serial | 抑制与可序列化的类别遗漏 serialVersionUID 栏位相关的警告 |
static-access | 抑制与静态存取不正确相关的警告 |
static-method | 抑制与可能宣告为 static 的方法相关的警告 |
super | 抑制与置换方法相关但不含 super 呼叫的警告 |
synthetic-access | 抑制与内部类别的存取未最佳化相关的警告 |
sync-override | 抑制因为置换同步方法而遗漏同步化的警告 |
unchecked | 抑制与未检查的作业相关的警告 |
unqualified-field-access | 抑制与栏位存取不合格相关的警告 |
unused | 抑制与未用的程式码及停用的程式码相关的警告 |
4. 常用类型一览表
属性 | 说明 |
---|
unchecked | 抑制与未检查的作业相关的警告 |
rawtypes | 抑制与使用 raw 类型相关的警告 |
unused | 抑制与未用的代码相关的警告 |
deprecation | 抑制与使用过时 API 相关的警告 |
fallthrough | 抑制 switch 语句中遗漏 break 的警告 |
serial | 抑制 Serializable 类缺少 serialVersionUID 警告 |
all | 抑制所有警告 |
5. @SuppressWarnings 的源码
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {String[] value();
}