@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface IAntiResubmit { String value() default ""; String key(); } 此key为空值,为什么还能通过它作为loadKey(iAntiResubmit.key(), pjp)方法的第一个参数
时间: 2024-04-22 13:23:46 浏览: 109
Java注释@interface的用法
在Java中,注解的成员变量可以在注解使用时不设置默认值,但在使用该注解时必须显式地为该成员变量赋值,否则编译器会报错。但是,在使用注解时,如果只有一个成员变量需要赋值,且该成员变量的名称为"value",则在为该成员变量赋值时可以省略"value=",直接将值赋给成员变量即可。
在这个例子中,@IAntiResubmit注解中有两个成员变量,分别是value和key。value成员变量设置了默认值为空字符串,而key成员变量没有设置默认值。因此在使用@IAntiResubmit注解时,必须为key成员变量显式地赋值。在loadKey方法中,第一个参数使用了iAntiResubmit.key(),这里的key()方法指的就是@IAntiResubmit注解中的key成员变量。虽然该成员变量没有设置默认值,但是因为其名称为"value",所以在为该成员变量赋值时可以省略"value=",直接将值赋给成员变量即可。因此,即使该成员变量没有设置默认值,也可以通过iAntiResubmit.key()获取到该成员变量的值。
阅读全文