JAvaでとても使いやすい反射フレームReflections
1697 ワード
Reflectionsでは、classpathをスキャンしてメタデータをインデックスし、実行時にメタデータをクエリーできます.
Reflectionsを使用すると、次のメタデータ情報を簡単に入手できます.
1)あるタイプのすべてのサブクラスを取得する.たとえば、TestInterfaceの親クラスがあり、TestInterfaceのすべてのサブクラスを取得できます.
2)ある注釈のすべてのタイプ/フィールド変数を取得し、注釈パラメータの一致をサポートする.
3)正規表現を使用して一致するすべてのリソースファイルを取得する
4)特定の署名方法を取得する.
一般的な使い方は次のとおりです.
依存jarの導入
プロジェクトで使用:
詳細については、公式ドキュメントも参照してください.https://www.programcreek.com/java-api-examples/index.php?api=org.reflections.scanners.MethodAnnotationsScanner
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