自定义注解

Demo

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface FruitName {
    String value() default "";
}

 

定义注解格式

public @interface 注解名 {定义体}
  • 使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口
  • 自定义注解中的每一个方法实际上是声明了一个配置参数,方法的名称就是参数的名称,返回值类型就参数类型

 

元注解

  • @Target: 用于描述注解的使用范围,即该注解可以被用在哪些地方
    • ElementType.TYPE:类、接口(包括注解类型)、枚举
    • ElementType.FIELD:字段、枚举常量
    • ElementType.METHOD:方法
  • @Retention: 用于描述注解的生命周期
    • RetentionPolicy.SOURCE:只在源码中保留,编译后丢弃
    • RetentionPolicy.CLASS:编译后保留在 class 文件中,运行时不可见(默认值)
    • RetentionPolicy.RUNTIME:运行时保留,可通过反射读取
  • @Documented:会被 JavaDoc 文档化
  • @Inherited: 当注解标记在class上时,表示该注解会作用在其所有子类上

 

参考文章

【1】自定义注解

posted @ 2024-01-16 11:45  先娶国王后取经  阅读(16)  评论(0)    收藏  举报