欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

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/

 

相关标签: Java