我正在使用反射来查看附加到类的属性的注释是否具有特定类型。目前我正在做:
if("javax.validation.Valid".equals(annotation.annotationType().getName())) { ... }
这让我有些不高兴,因为它依赖于完全合格的类名称的字符串。如果将来更改命名空间,则可能会导致细微的错误。
我想要做:
if(Class.forName(annotation.annotationType().getName()).isInstance( new javax.validation.Valid() )) { ... }
但是javax.validation.Valid是抽象类,无法实例化。有没有一种方法可以针对接口或抽象类进行模拟instanceof(或基本上使用isInstance)?
javax.validation.Valid
instanceof
isInstance
你只是在寻找
if (annotation.annotationType().equals(javax.validation.Valid.class)){}
?