Checking if an annotation is of a specific type

怎甘沉沦 提交于 2019-12-02 19:16:26

Are you just looking for

if (annotation.annotationType().equals(javax.validation.Valid.class)){}

?

Or even simpler:

if (annotation instanceof Valid) { /* ... */ }

Just for completeness' sake, another possibility is

if (this.getClass().isAnnotationPresent(MyCustomAnnotation.class)) {

Ok, I guess I should have done a little more research before posting the question. I discovered that I could use Class.isAssignableFrom(Class<?> cls):

import javax.validation.Valid;

if(Valid.class.isAssignableFrom(annotation.annotationType())) {
   ...
}

This seems to do the job. I'm not sure if there are any caveats to using this approach, though.

Since an annotation is just a class, you can simply use an == compare:

if (annotation.annotationType() == Valid.class) { /* ... */ }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!