Java程序除了代码和注释,还有@注解

Java 注解(Annotation)
  • 又称 Java 标注
  • JDK 1.5 引入的一种注释机制
  • 用来修饰程序的元素,但不会对被修饰的对象有直接的影响
  • 只有通过 某种配套的工具 才会对注解信息进行访问和处理

– 主要用途:
• 提供信息给编译器 / IDE 工具
• 可用于其他工具来产生额外的代码 / 配置文件等
• 有一些注解可在程序运行时访问,增加程序的动态性

注解划分的三大类:内建注解/元注解/自定义注解
1.内建注解
  • @Override 表示继承和重写
    – 修饰方法,检查该方法是父类的方法
  • @Deprecated 表示废弃
    – 修饰类 / 类的元素 / 包
    – 标注为废除,建议不再使用这个类 / 元素 / 包
  • @SuppressWarnings 表示压制警告
    – 可以修饰变量 / 方法 / 构造函数 / 类等
    – 压制各种不同类型的警告信息,使得编译器不显示警告
    – @SuppressWarnings(“unchecked”) 忽略 unchecked 警告信息
    – @SuppressWarnings(“deprecated”) 忽略过时方法的警告信息
    – @SuppressWarnings({“unchecked” ,“deprecated”}) 忽略两种警告
    信息
    – @ SuppressWarnings(values={“unchecked” ,“deprecated”}) 同上
    – @ SuppressWarnings( “all”) 忽略所有的警告信息
    – @ SuppressWarnings( “cast”) 忽略类转型警告
    – @ SuppressWarnings( “serial”) 忽略实现 Serializable 接口的,没有定义serialVersionUID
    • 使用 javac - - X 可以看当前的编译器使用哪些警告类型
    在这里插入图片描述
  • @ SafeVarargs 不会对不定项参数做危险操作
  • @ FunctionInterface 声明功能性接口
2.元注解:用来修饰其他的注解
  • @Target 设置目标范围
    – 限定目标注解作用于什么位置@Target({ElementType.METHOD})
    – ElementType.ANNOTATION_TYPE (注:修饰注解)
    – ElementType.CONSTRUCTOR
    – ElementType.FIELD
    – ElementType.LOCAL_VARIABLE
    – ElementType.METHOD
    – ElementType.PACKAGE
    – ElementType.PARAMETER
    – ElementType.TYPE
  • @Retention 设置保持性
    – 示例: @Retention(RetentionPolicy.RUNTIME)
    – 用来修饰其他注解的存在范围
    – RetentionPolicy.SOURCE 注解仅存在源码,不在 .class 文件。
    – RetentionPolicy.CLASS 这是默认的注解保留策略 。注解存在于
    .class 文件,但是不能被 JVM 加载。
    – RetentionPolicy.RUNTIME 这种策略下,注解可以被 JVM 运行时
    访问到。通常情况下,可以结合反射来做一些事情。
  • @Documented 文档
    – 指明这个注解可以被 Javadoc 工具解析,形成帮助文档
  • @Inherited 注解继承
    – 让一个类和它的子类都包含某个注解
    –普通的注解没有继承功能
  • @Repeatable 此注解可以重复修饰
    – 自 JDK1.8 引入
    – 表示被修饰的注解可以重复应用标注
    – 需要定义注解和容器注解

3.自定义注解

  • 扩展于 java.lang.annotation.Annotation
  • 成员可以包括多种类型
  • 使用时可以给注解成员赋值
@interface
Servlet 3.0的注解快捷配置

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章