問題タブ [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.
java - リフレクション API がアノテーションを持つインターフェイスを表示しない
Reflections API を使用して Java プロジェクトをスキャンし、特定の注釈を持つすべてのクラス/インターフェースを取得しています。ただし、クラスを返すだけで、インターフェイスは返しません。
私は以下を使用しています:
注 : Path アノテーションを持つクラスで機能します。
Reflections がスキャン インターフェイスをサポートしていないということでしょうか。または、何か他のコードを作成する必要がありますか?
java - ConfigurationBuilder、FilterBuilder、Java リフレクションのスキャナ
Java リフレクションの ConfigurationBuilder、FilterBuilder、Scanners に関する多くのドキュメントを見つけることができません。誰かが私にユースケースが何であるかを説明できますか?
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<?>
java - Reflection を使用して、別の ClassLoader でロードされたクラスの非静的フィールドを検査する方法は?
子URLClassLoader
を使用して、実行時に Android SDK (sdk/platforms/) にある android.jar をロードし、Google Reflections ライブラリを使用して、ロードした新しいクラスを検査します。ただし、次のコードでは、静的フィールドしか検査できないようです。インスタンスフィールドも調べたいと思います。(私はメソッドに問題はありません!)
たとえば、上記のコードが を検査android.view.View
すると、以下のみが出力されます。
私が間違っていることは何ですか?
java - org.reflections.Reflections はスレッドセーフですか
org.reflections.Reflections クラスの複数のインスタンスを作成する必要がないように、1 つだけ作成して必要に応じて再利用することを考えていました。このクラスがスレッドセーフかどうか知っている人はいますか?
スレッドセーフでない場合は、Java の ThreadLocal ラッパーを使用できることを知っています (誰かがそれで応答する場合)。
java - Java で動的にロードされたクラスの .class ファイルへのパスを取得する
特定のタイプのクラスパス内のすべてのクラスをインスタンス化してマップしようとしています。
ライブラリを使用してスキャンを実行し、Reflections
ロードされたクラスのリストを取得しました。
次に、それらをマッピングするときに、競合をチェックしています (キーは単純なクラス名です)。
JARs
その場合は、例外をスローして、競合するクラスの完全修飾名と、それらがロードされたパス (たとえば、それぞれを見つける可能性 のあるパス) を指摘したいと思います。
メモリからクラスをロードすることもあるJAR
と思いますが、ディスクからロードしていると仮定すると、そのパスを取得する方法はあるのでしょうか...
以下のコード スニペットを参照してください。
このコードはコンパイルできますが、動作しません。getClass().getResource(class1.getSimpleName()+".class") は null を返します。へのパスを取得するにはどうすればよい.class
ですか?
maven - プロジェクトでMavenプラグインを介して使用すると、Googleリフレクションがクラスを見つけることができません
Maven プラグインで Google リフレクションを使用して、注釈付きのクラスを取得しています。私のプロジェクトのように、URL を 1 つだけ指定し、3 つのキーを持っていますが、代わりにスキャンされた 108 個の URL と 0 個のキーが表示されています。不足している可能性があるのは、0.9.9 バージョンの Google リフレクションを使用していることです。