Reflections—Java运行数据分析
程序员文章站
2022-04-17 20:46:24
...
来自google code项目页:http://code.google.com/p/reflections/
Reflections可以扫描您的类路径,索引的数据,可以允许你在运行时查询、保存和收集您项目中许多模块的信息。
使用Reflections,您可以查询您的元数据:
- 获取所有子型的某些类型
- 获取所有类型的一些说明注释,包括注释参数的匹配
- 所有的方法能获取一些说明
如何来使用呢?
对所有的 Reflections 使用一站式的Reflections对象:
- 获取一个 Reflections实例,它提供了您的最初配置
- 查询您的项目元数据
代码如下:
Configuration configuration = new AbstractConfiguration() { { setUrls(ClasspathHelper.getUrlsForCurrentClasspath()); setScanners(new SubTypesScanner(), new ClassAnnotationsScanner()); setFilter(new IncludeExcludeChain( new IncludePrefix("your project's common package prefix here...") )); } }; Reflections reflections = new Reflections(configuration); // get all subtypes of some type Set<Class><?>> subTypes = reflections.getSubTypesOf(SomeClassOrInterface.class); // get all types annotated with some annotation Set<Class><?>> annotated = reflections.getTypesAnnotatedWith(SomeAnnotation.class); // get all types annotated with some annotation, including annotation parameters matching Set<Class><?>> annotated1 = reflections.getTypesAnnotatedWith(new SomeAnnotation() { public String value() {return "1";} public Class<? extends Annotation> annotationType() {return SomeAnnotation.class;} }) ; }
更多详情请点击项目页:http://code.google.com/p/reflections/ 。
上一篇: 体育运行项目中的冷幽默
下一篇: 要把人笑疯掉的小伙伴