1

Java リフレクションの ConfigurationBuilder、FilterBuilder、Scanners に関する多くのドキュメントを見つけることができません。誰かが私にユースケースが何であるかを説明できますか?

4

1 に答える 1

2

標準コードではなく、 Java Reflections ライブラリのクラスについて話しているようです。java.lang.reflect

簡単にするために、3 つのクラスすべてを使用して Reflections オブジェクトを構成します。これにより、ソース コードが解析され、クエリが実行できるようになります。

GitHub ページに記載されているように、いくつかの Javadoc があります。

javadocを一瞥するConfigurationBuilderと、一種のパ​​ターンが表示されます (物事を際立たせるために自由にコメントを追加しました)。

  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)));

リフレクションの作成者は実際にドキュメントを少し改善できると思います...

于 2014-08-19T14:19:46.717 に答える