常用注解的作用

一.注解

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface MthCache {
    String key();
}

1.@Target 注解

(1)功能:

  • 指明了修饰的这个注解的使用范围,即被描述的注解可以用在哪里。

(2)ElementType的取值包含以下几种:

  • TYPE:类,接口或者枚举
  • FIELD:域,包含枚举常量
  • METHOD:方法
  • PARAMETER:参数
  • CONSTRUCTOR:构造方法
  • LOCAL_VARIABLE:局部变量
  • ANNOTATION_TYPE:注解类型
  • PACKAGE:包

2.@Retention 注解

(1)功能:

  • 指明修饰的注解的生存周期,即会保留到哪个阶段。

(2)RetentionPolicy的取值包含以下三种:

  • SOURCE:源码级别保留,编译后即丢弃。
  • CLASS:编译级别保留,编译后的class文件中存在,在jvm运行时丢弃,这是默认值。
  • RUNTIME: 运行级别保留,编译后的class文件中存在,在jvm运行时保留,可以被反射调用。

3.@Documented 注解

(1)功能:

  • 指明修饰的注解,可以被例如javadoc此类的工具文档化,只负责标记,没有成员取值。

4.@Inherited注解

(1)功能:

  • 允许子类继承父类中的注解。

注意:

  • @interface意思是声明一个注解,方法名对应参数名,返回值类型对应参数类型。

你可能感兴趣的:(常用注解的作用)