我正在使用反射来查看附加到类属性的注释是否属于特定类型。目前我正在做:
if("javax.validation.Valid".equals(annotation.annotationType().getName())) {
...
}
这让我觉得有点笨拙,因为它依赖于一个完全限定类名的字符串。如果将来命名空间发生变化,这可能会导致细微的错误。
我想要做:
if(Class.forName(annotation.annotationType().getName()).isInstance(
new javax.validation.Valid()
)) {
...
}
但是javax.validation.Valid
是一个抽象类,不能实例化。有没有办法针对接口或抽象类模拟instanceof
(或基本上使用)?isInstance