我有一个注释:
@Inherited @InterceptorBinding @Retention(RUNTIME) @Target({METHOD,TYPE}) public @interface Example { }
以及用于处理的拦截器类:
@Interceptor @Example public class ExampleInterceptor implements Serializable { ... }
我想添加一个参数文本:
public @interface Example { String text(); }
但我不知道如何处理拦截器类中的参数.如何修改类的注释?
@Interceptor @Example(text=???????) public class ExampleInterceptor implements Serializable { ... }
如果我写@Example(text =“my text”),就会在使用@Example(text =“my text”)注释方法/类时调用拦截器.但是我希望在参数值上独立调用拦截器 – @Example(text =“other text”).
以及如何获取参数值?我是否必须使用反思或有更好的方法吗?
解决方法
使用注释@Nonbinding时,会为每个属性值调用拦截器.
注解:
public @interface Example { @Nonbinding String text() default ""; }
拦截器:
@Interceptor @Example public class ExampleInterceptor implements Serializable { ... }