【问题标题】:Can I use BeanValidation on annotations themselves?我可以在注释本身上使用 BeanValidation 吗?
【发布时间】:2015-12-31 03:35:53
【问题描述】:
我正在开发一个注释处理器并开始好奇。
像这样注释并在注释处理器中验证是否有意义?
@Retention(value = RUNTIME)
@Target(value = {FIELD, METHOD, PARAMETER})
public @interface BitProperty {
@Min(1)
@Max(31)
int scale() default 31;
}
【问题讨论】:
标签:
java
annotations
bean-validation
annotation-processing
【解决方案1】:
我什至不确定这应该怎么做?你的期望是什么?当注解处理器运行时,您希望发生验证并且带有无效参数值的注解(例如scale > 31)抛出一个约束冲突异常,这反过来又会中止注解处理?
这里最大的问题是注解处理器不处理Annotation 实例,而是处理AnnotationMirrow 和javax.lang.model.element 包中的其他类。 Bean Validation 和 Hibernate Validator 不是为使用这个反射 API 而设计的。所以,不,它不会起作用。