如何获得某些类的所有可用注释的列表

时间:2015-12-04 03:48:58

标签: java

有没有办法可以向用户显示与某个类相关的所有可用注释的列表,例如hibernate或javax.persistence下可用的所有注释。

比如,更具体一点,当我在Eclipse中编写@并点击CtlSpace时。 我收到此列表http://screencast.com/t/tLAVFdi46OiB

我想在我的应用程序的界面中显示整个列表。

这个列表必须有一些来自我可以获取此列表的地方。

任何想法

谢谢

1 个答案:

答案 0 :(得分:0)

所有注释都实现Annotation接口。因此,您可以尝试使用此类内容查找org.hibernate包中的所有注释(请参阅Reflections javadocs):

Reflections reflections = new Reflections("org.hibernate");
Set<Class<? extends Annotation>> annotations  = reflections.getSubTypesOf(Annotation.class);

您需要Reflections库,该库依赖于GuavaJavassist。如果您正在使用IntelliJ和gradle(我建议),您可以将其包含在您的gradle文件中:

compile 'org.reflections:reflections-maven:0.9.9-RC2'
compile 'com.google.guava:guava:18.0'
compile 'javassist:javassist:3.12.1.GA'