我无法在Java反射中找到有关ConfigurationBuilder,FilterBuilder,Scanners的大量文档。有人可以解释一下用例吗?

最佳答案

您似乎在谈论的是Java Reflections library中的类,而不是标准的java.lang.reflect代码。

为简单起见,所有这三个类均用于配置Reflections对象,该对象将解析源代码并允许您对其进行查询。

如GitHub页面所述,有一些Javadoc:


ConfigurationBuilder
FilterBuilder
Scanner


如果您看一看ConfigurationBuilder javadoc,就会出现一种模式(我可以自由添加一些注释以使内容发光):

  new Reflections(
    /*
     * ConfigurationBuilder is used to build a configuration parsable by Reflection.
     * This configuration must include a few things :
     * - where to look for classes
     * - what to look in classes
     */
      new ConfigurationBuilder()
        /*
         * FilterBuilder answers the *where* question by specifying which fragments
         * of classpath are to be scanned. Indeed, as far as I understand,
         * Reflections can parse the whole classpath, which will be way to slow
         * for anybody  (and contains lots of useless java.* classes). So your
         FilterBuilder defines include patterns for the packages you need
         */
          .filterInputsBy(new FilterBuilder().include("your project's common package prefix here..."))
          .setUrls(ClasspathHelper.forClassLoader())
          /*
           * Scanner defines the what : if you look for subclasses, you'll need
           * to add a subclass scanner. if you look for
           * annotations, the type annotation scanner is required, and so on.
           */
          .setScanners(new SubTypesScanner(), new TypeAnnotationsScanner().filterResultsBy(myClassAnnotationsFilter)));


我想思考作者确实可以稍微改善他们的文档...

关于java - Java反射中的ConfigurationBuilder,FilterBuilder,扫描仪,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25384594/

10-09 01:42