注解

注解

Annotation是从JDK5.0开始引入的

注释是给人看的,注解既给人看也给机器看

注解也有检查和规范的作用,比如@Override下面把重写的方法名写错了会报错

@FunctionalInterface函数式接口

@Deprecated已废弃的,不推荐使用的

@SuppressWarnings(value="unchecked")抑制警告

可以附加在package,class,method,field上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问

元注解

元注解负责注解其他注解

java定义了4个标准的meta-annotation类型,被用作说明其他annotation类型

java.lang.annotation包中的

  • @Target:用于描述注解的适用范围(可以用在什么地方)
  • @Retention:(需要在什么级别保存该注解信息,描述注解的生命周期SOURCE源代码<CLASS字节码<RUNTIME运行的时候,自定义的注解都用RUNTIME)
  • @Documented表示是否将注解生成在Javadoc中
  • @Inherited子类可以继承父类中的该注解

自定义注解

使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口

分析:

  • @interface用来声明一个注解,格式:public @ interface 注解名
  • 其中的每一个"方法"实际上是声明了一个配置参数,格式:参数类型 参数名() default 默认值; default默认值可以不写
  • "方法"的名称就是参数的名称
  • 返回值类型就是参数的类型(返回值只能是基本类型,Class,String,enum)
  • 可以通过default来声明参数的默认值
  • 如果只有一个参数成员,一般参数名为value
  • 注解元素必须要有值,我们定义注解元素时,经常使用空字符串,0作为默认值。不在使用注解的地方给出应给的参数会报错

以后看别人的代码会有大量的注解,要知道别人都写了什么东西,规定了什么约束

posted @ 2021-02-10 13:28  口合口合kouhekouhe  阅读(62)  评论(0编辑  收藏  举报