リフレクションを使用して、クラスのプロパティにアタッチされているアノテーションが特定のタイプであるかどうかを確認しています。現在私がしていること:
if("javax.validation.Valid".equals(annotation.annotationType().getName())) {
...
}
これは、完全修飾されたクラス名である文字列に依存しているため、少し厄介だと思います。将来、名前空間が変更された場合、微妙なエラーが発生する可能性があります。
私がしたいのは:
if(Class.forName(annotation.annotationType().getName()).isInstance(
new javax.validation.Valid()
)) {
...
}
ただしjavax.validation.Valid
、これは抽象クラスであり、インスタンス化することはできません。インターフェイスまたは抽象クラスに対してシミュレートするinstanceof
(または基本的に使用する)方法はありますか?isInstance