刚好需要用到重复注解: 下面进行示例使用: 1、先正常定义一个注解: @Retention(value = RetentionPolicy.RUNTIME) @Target(value = {ElementType.METHOD} ) @Inherited public @interface Require { String paraName() def
刚好需要用到重复注解:
下面进行示例使用:
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 "";
}
使用:
"id")@Require(paraName="name",cnParaName="姓名")
public void idName2() {
write("id : "+query("id")+"<br/>");
write("name : "+query("name")+"<br/>");
}