I am using reflection to see if an annotation that is attached to a property of a class, is of a specific type. Current I am doing:
if("javax.validation.Valid".equals(annotation.annotationType().getName())) { ... }
Which strikes me as a little kludgey because it relies on a string that is a fully-qualified class-name. If the namespace changes in the future, this could cause subtle errors.
I would like to do:
if(Class.forName(annotation.annotationType().getName()).isInstance( new javax.validation.Valid() )) { ... }
But javax.validation.Valid
is an abstract class and cannot be instantiated. Is there a way to simulate instanceof
(or basically use isInstance
) against an interface or an abstract class?
Are you just looking for
if (annotation.annotationType().equals(javax.validation.Valid.class)){}
?
Or even simpler:
if (annotation instanceof Valid) { /* ... */ }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With