java 内置注解

注解 作用 描述
@Override 将覆盖父类中的方法 作用在子类的方法上
@Deprecated 代码被弃用 使用了被@Deprecated注解的代码则编译器将发出警告
@SuppressWarnings 关闭编译器警告信息 取值为String[],警告信息是多种的,可以具体指明哪些类型的警告信息被抑制

@SuppressWarnings 取值范围如下

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,抑制与未用的程式码及停用的程式码相关的警告

元注解

标注注解的注解,约束定义的注解用在字段、方法还是类上;保留在编译期、运行期还是源文件上等

在JDK 1.5中提供了4个标准的元注解:@Target@Retention@Documented@Inherited, 在JDK 1.8中提供了两个元注解 @Repeatable@Native

@Target

作用是标明该注解可以用在什么地方

public enum ElementType {
TYPE, // 类、接口、枚举类
FIELD, // 成员变量(包括:枚举常量)
METHOD, // 成员方法
PARAMETER, // 方法参数
CONSTRUCTOR, // 构造方法
LOCAL_VARIABLE, // 局部变量
ANNOTATION_TYPE, // 注解类
PACKAGE, // 可用于修饰:包
TYPE_PARAMETER, // 类型参数,JDK 1.8 新增
TYPE_USE // 使用类型的任何地方,JDK 1.8 新增
}

@Retention

作用是指定注解的生命周期

lombok 的注解生命周期就是 RetentionPolicy.SOURCE

如果 反射 时需要获取到注解信息需要是 RetentionPolicy.RUNTIME,这是自定义注解的绝大部分场景

public enum RetentionPolicy {
SOURCE, // 源文件保留(java 文件)
CLASS, // 编译期保留,默认值(class 文件)
RUNTIME // 运行期保留(运行时也存在)
}

@Inherited

子类是否继承父类的注解,比如父类使用了 @Inherited 修饰的注解,子类会自动继承注解

最新文章

  1. Android ButterKnife配置使用
  2. yii2.0场景的使用
  3. groups, usermod, chown, chgrp, chmod
  4. Java中的内存分配机制
  5. flex布局中flex-basis|flex-grow|flex-shrink
  6. grunt下cssmin的配置参数
  7. Android推送等耗电原因剖析
  8. Windows Azure 上 Linux VM 中的交换空间 – 第 2 部分
  9. 【Cocos2d-X游戏实战开发】捕鱼达人之单例对象的设计(二)
  10. centOS静态ip设置
  11. Huffman 哈夫曼编码与译码的原理剖析及C++实现
  12. jQuery 遍历 – 祖先
  13. Vue:如何在地图上添加自定义覆盖物(点)
  14. UOJ#276. 【清华集训2016】汽水 二分答案 点分治
  15. c#代码分析
  16. linux 之awk
  17. angularjs中ng-repeat插入图片
  18. Genymotion 模拟器上网出现 net::ERR_NAME_NOT_RESOLVED
  19. retrying模块的学习
  20. spring cloud学习(四) Fegin 的使用

热门文章

  1. Java实现BP神经网络MNIST手写数字识别
  2. redis 6种过期策略的具体方式
  3. KMP 算法 再次学习
  4. Vue视频 | 【Vue2 + Vue3 前端教程】完整版
  5. P16_发布-小程序的推广与运行数据的查看
  6. Nacos入门
  7. 树莓派开机启动VNC
  8. 学习Java Day23
  9. Spring Boot 防止接口被恶意刷新、暴力请求
  10. 列表(list)内置方法补充、字典(dict)内置方法、元组(tuple)内置方法、集合(set)内置方法