Я пытаюсь получить ссылку на объект Class
для аннотации, которая вызвала ConstraintViolation
в пакете javax.validation
(реализация Apache Bval).
Получив несколько ConstraintViolations, я передаю их в следующую функцию:
private Class<?> getConstraintAnnotation(final ConstraintViolation<?> constraintViolation) {
return constraintViolation
.getConstraintDescriptor()
.getAnnotation()
.getClass();
}
И это возвращает объект класса, чьи getName()
, getCanonicalName()
и getTypeName()
возвращают «java.lang.reflect.Proxy».
Как ни странно, метод toString()
объекта Class
возвращает "класс com.sun.proxy.$Proxy10".
Есть ли способ получить настоящие классы аннотаций, а не эти прокси? В идеале я хотел бы сопоставить встроенные аннотации с кодами ошибок (без необходимости перезаписывать сообщение каждый раз, когда я его использую).