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