問題タブ [reflections]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
701 参照

java - リフレクション API がアノテーションを持つインターフェイスを表示しない

Reflections API を使用して Java プロジェクトをスキャンし、特定の注釈を持つすべてのクラス/インターフェースを取得しています。ただし、クラスを返すだけで、インターフェイスは返しません。

私は以下を使用しています:

注 : Path アノテーションを持つクラスで機能します。

Reflections がスキャン インターフェイスをサポートしていないということでしょうか。または、何か他のコードを作成する必要がありますか?

0 投票する
1 に答える
825 参照

java - ConfigurationBuilder、FilterBuilder、Java リフレクションのスキャナ

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

0 投票する
2 に答える
181 参照

java - クラスからサブクラスを取得する

サービス インターフェイスに@Serviceアノテーション (Spring ではなくカスタム アノテーション) が付けられているプロジェクトがあり、サービスごとに複数の実装 (hibernate、mongodb など) が存在する可能性があります。

次のようなリフレクションを使用して実装クラスをロードしようとしています。

@Serviceステップ 1:アノテーション付きのすべてのインターフェースをロードする

ステップ 2: 各インターフェースのすべてのサブクラスをロードする

コードは次のとおりです。

私が得ているコンパイルエラー:Type mismatch: cannot convert from Set<Class<? extends capture#8-of ?>> to Set<Class<?>>

私の理解 Class<?>によると、型は何でもかまいません。そのため、必要なメソッドがパラメーターとしてとれない理由がわかりClass<T>ません。Class<?>

なぜこれが起こっているのかを理解してくれる人はいますか?私のアプローチに代わるものはありますか?前もって感謝します!

編集:@MGorgonによるコメントと@StriplingWarriorおよび@Sotirios Delimanolisによる回答によると、反射法を使用することは問題外です。型の参照を持つ型のサブ型を取得する方法はありますかClass<?>

0 投票する
1 に答える
186 参照

java - Reflection を使用して、別の ClassLoader でロードされたクラスの非静的フィールドを検査する方法は?

URLClassLoaderを使用して、実行時に Android SDK (sdk/platforms/) にある android.jar をロードし、Google Reflections ライブラリを使用して、ロードした新しいクラスを検査します。ただし、次のコードでは、静的フィールドしか検査できないようです。インスタンスフィールドも調べたいと思います。(私はメソッドに問題はありません!)

たとえば、上記のコードが を検査android.view.Viewすると、以下のみが出力されます。

しかし、明らかにそれだけではありません!

私が間違っていることは何ですか?

0 投票する
1 に答える
499 参照

java - org.reflections.Reflections はスレッドセーフですか

org.reflections.Reflections クラスの複数のインスタンスを作成する必要がないように、1 つだけ作成して必要に応じて再利用することを考えていました。このクラスがスレッドセーフかどうか知っている人はいますか?

スレッドセーフでない場合は、Java の ThreadLocal ラッパーを使用できることを知っています (誰かがそれで応答する場合)。

0 投票する
1 に答える
1242 参照

java - Java で動的にロードされたクラスの .class ファイルへのパスを取得する

特定のタイプのクラスパス内のすべてのクラスをインスタンス化してマップしようとしています。

ライブラリを使用してスキャンを実行し、Reflectionsロードされたクラスのリストを取得しました。

次に、それらをマッピングするときに、競合をチェックしています (キーは単純なクラス名です)。

JARsその場合は、例外をスローして、競合するクラスの完全修飾名と、それらがロードされたパス (たとえば、それぞれを見つける可能性 のあるパス) を指摘したいと思います。

メモリからクラスをロードすることもあるJARと思いますが、ディスクからロードしていると仮定すると、そのパスを取得する方法はあるのでしょうか...

以下のコード スニペットを参照してください。

このコードはコンパイルできますが、動作しません。getClass().getResource(class1.getSimpleName()+".class") は null を返します。へのパスを取得するにはどうすればよい.classですか?

0 投票する
0 に答える
110 参照

maven - プロジェクトでMavenプラグインを介して使用すると、Googleリフレクションがクラスを見つけることができません

Maven プラグインで Google リフレクションを使用して、注釈付きのクラスを取得しています。私のプロジェクトのように、URL を 1 つだけ指定し、3 つのキーを持っていますが、代わりにスキャンされた 108 個の URL と 0 個のキーが表示されています。不足している可能性があるのは、0.9.9 バージョンの Google リフレクションを使用していることです。