Могу ли я использовать BeanValidation для самих аннотаций?

Я работаю над процессором аннотаций и мне стало любопытно.

Есть ли смысл аннотировать подобное и проверять в процессоре аннотаций?

@Retention(value = RUNTIME)
@Target(value = {FIELD, METHOD, PARAMETER})
public @interface BitProperty {

    @Min(1)
    @Max(31)
    int scale() default 31;
}

1 ответ

Решение

Я даже не уверен, что это должно делать? Каковы будут ваши ожидания? Когда работает процессор аннотаций, вы хотите, чтобы выполнялась проверка и аннотации с недопустимыми значениями параметров (например, scale > 31) сгенерировать исключение нарушения ограничения, которое, в свою очередь, прервет обработку аннотаций?

Самая большая проблема здесь в том, что процессор аннотаций не имеет дело с Annotation экземпляры, а точнее с AnnotationMirrow и другие классы в пределах javax.lang.model.element пакет. Bean Validation и Hibernate Validator не предназначены для работы с этим отражающим API. Так что нет, это не сработает.

Другие вопросы по тегам