Java自定义注解

定义注解

@Target(ElementType.FIELD)  
@Retention(RetentionPolicy.RUNTIME)  
@Documented  
@Repeatable(ShowMessage.ShowMessages.class)  
public @interface ShowMessage {  
    String message() default "hello";  
    @Target(ElementType.FIELD)  
    @Retention(RetentionPolicy.RUNTIME)  
    @Documented  
    @interface ShowMessages {  
        ShowMessage[] value();
    }  
}

详细解释

元注解

  • @Target用于定义注解能在什么地方被使用
  • @Rentention用于定义注解的生命周期,自定义注解一般为RetentionPolicy.RUNTIME,运行时仍然存在
  • @Repeatable语法糖,指明注解可重复在一个地方被使用

定义注解的属性

使用类似无参方法的写法,可使用default在后面定义默认值

参考文档