Я использую отражение, чтобы увидеть, относится ли аннотация, которая прикреплена к свойству класса, определенного типа. Текущий делаю:
if("javax.validation.Valid".equals(annotation.annotationType().getName())) {
...
}
Это кажется мне немного глупым, потому что оно опирается на строку, которая является полностью определенным именем класса. Если пространство имен изменится в будущем, это может привести к незначительным ошибкам.
Я бы хотел сделать:
if(Class.forName(annotation.annotationType().getName()).isInstance(
new javax.validation.Valid()
)) {
...
}
Но javax.validation.Valid
является абстрактным классом и не может быть создан. Есть ли способ имитировать instanceof
(или в основном использовать isInstance
) для интерфейса или абстрактного класса?