刚好需要用到重复注解:

下面进行示例使用:

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/>");
    }

 

posted on 2022-08-26 02:48  路过秋天  阅读(115)  评论(0编辑  收藏  举报
路过秋天