JAvaでとても使いやすい反射フレームReflections


Reflectionsでは、classpathをスキャンしてメタデータをインデックスし、実行時にメタデータをクエリーできます.
Reflectionsを使用すると、次のメタデータ情報を簡単に入手できます.
1)あるタイプのすべてのサブクラスを取得する.たとえば、TestInterfaceの親クラスがあり、TestInterfaceのすべてのサブクラスを取得できます.
2)ある注釈のすべてのタイプ/フィールド変数を取得し、注釈パラメータの一致をサポートする.
3)正規表現を使用して一致するすべてのリソースファイルを取得する
4)特定の署名方法を取得する.
一般的な使い方は次のとおりです.
依存jarの導入

    org.reflections
    reflections
    0.9.10

プロジェクトで使用:
//       
Reflections reflections = new Reflections(new ConfigurationBuilder().forPackages(basePackages).addScanners(new SubTypesScanner()).addScanners(new FieldAnnotationsScanner()));

//               
Set> typeClass = reflections.getTypesAnnotatedWith(RpcInterface.class, true);

//     
Set> subTypes = reflections.getSubTypesOf(SomeType.class);

//          
Set resources =reflections.getMethodsAnnotatedWith(SomeAnnotation.class);

//          
Set ids = reflections.getFieldsAnnotatedWith(javax.persistence.Id.class);

//            
Set someMethods = reflections.getMethodsMatchParams(long.class, int.class);

Set voidMethods = reflections.getMethodsReturn(void.class);

Set pathParamMethods =reflections.getMethodsWithAnyParamAnnotated(PathParam.class);

//       
Set properties = reflections.getResources(Pattern.compile(".*\\.properties"));

詳細については、公式ドキュメントも参照してください.https://www.programcreek.com/java-api-examples/index.php?api=org.reflections.scanners.MethodAnnotationsScanner