Java プラグイン (jqassistant.plugin.java) は、メンバーを含む既存の型 (クラス、インターフェイス、列挙型、注釈) ノードを検索できるインターフェイス TypeResolver を提供します。スキャナ プラグインに提供されたコンテキストから型リゾルバのインスタンスを取得できます。
TypeCache.CachedType<TypeDescriptor> resolver = context.peek(TypeResolver.class);
CachedType cachedType = resolver.resolve(typeName, context);
TypeDescriptor typeDescriptor = cachedType .getTypeDescriptor();
MethodDescriptor methodDescriptor = typeDescriptor .getMethod(methodSignature);
FieldDescriptor fieldDescriptor = typeDescriptor .getMethod(fieldSignature);
これには 2 つの問題があります。
- これらのインターフェースはまだ安定していない可能性があります (つまり、将来変更される可能性があります)。
- TypeResolver インスタンスを取得できない可能性があります。これは、Java クラスパスが現在スキャンされている場合にのみ使用できます (クラス ディレクトリや JAR ファイルなど)。実際に何をスキャンしているか (JavaDoc など)、どのようにスキャンしているか (コマンドライン インターフェイスまたは Maven プラグイン)?