java 注解

引入版本 : Java SE5
注解(也成为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们在稍后某个时刻非常方便的使用这些数据。

三个java.lang自带的标准注解

@override : 表示当前方法的定义将覆盖父类中的方法。如果方法签名对不上被覆盖的方法,编译器会报错。
@Deprecated: 表示该元素已经过时,如果使用了该元素,编译器会发出一个warning。
@SuppressWarnings:关闭不当的编译器警告信息。

定义注解

@Target(ElementType.METHOD)//作用对象
@Retention(RetentionPolicy.SOURCE) //定义保存元数据的级别
public @interface test{
      public int id();
      public String description() default "no description";
}

使用注解

@test(id = 1)
public boolean testMethod(){
}

四种元注解,负责注解其他的注解

@Target 表示注解用在什么地方,可使用枚举类ElementType中的元素
  • CONSTRUCTOR (构造方法)
  • FIELD (类中的域 包括 enum)
  • LOCAL_VARIABLE (局部变量)
  • METHOD (方法)
  • PACKAGE (包)
  • PARAMETER (参数)
  • TYEP (类,接口, enum声明)

也可以使用该注解表示应用在所有的范围

@Retention 表示在什么级别保存注解的信息,可使用枚举类RetentionType中的元素
  • SOURCE(注解将被编译器丢弃)
  • CLASS (注解在class文件中可用,会被jvm丢弃)
  • RUNTIME (在运行期间保留该注解,可以通过反射机制获取注解的信息)
@Documented表示该注解包含在javadoc中
@Inherited表示该注解可以被继承

注解处理器

通过反射机制实现一个注解处理器,将注解中的信息应用到对应的范围中

注解元素

注解元素可以使用的类型包括:

  • 所有的基本类型
  • String
  • Class
  • enum
  • Annotation

否则会报错
注:基本类型不允许使用包装类

你可能感兴趣的:(java 注解)