刚好需要用到重复注解:
下面进行示例使用:
1、先正常定义一个注解:
@Retention(value = RetentionPolicy.RUNTIME) @Target(value = {ElementType.METHOD} ) @Inherited public @interface Require { String paraName() default ""; boolean isRequire() default true; String regex() default ""; String cnParaName() default ""; String emptyTip() default ""; String regexTip() default ""; }
2、定义一个重复的注解:(名称加了个s)
@Retention(value = RetentionPolicy.RUNTIME) @Target(value = {ElementType.METHOD} ) @Inherited @interface Requires { Require[] value(); }
几个小注意事项:
1、value为原生定义的数组。 2、修饰符public可以改成默认包内允许,对外隐藏掉。
3、给原来的正常定义再加上一个注解:
@Repeatable(Requires.class) //加上了这一行。 @Retention(value = RetentionPolicy.RUNTIME) @Target(value = {ElementType.METHOD} ) @Inherited public @interface Require { String paraName() default ""; boolean isRequire() default true; String regex() default ""; String cnParaName() default ""; String emptyTip() default ""; String regexTip() default ""; }
使用:
@Require(paraName="id") @Require(paraName="name",cnParaName="姓名") public void idName2() { write("id : "+query("id")+"<br/>"); write("name : "+query("name")+"<br/>"); }