0

注釈を使用してプロジェクトの gui コードを自動生成する ant タスクを開発している間、宣言的なアプローチを好むので、 を使用しjava.net.URLClassLoaderてクラスをクラスパスに動的に追加します。
クラス - レベル - アノテーションのクラスをスキャンすると、それらは存在しますが、それらのいずれも見つかりません

たとえば 、他の誰かがこの問題を経験し、解決策を提供できますか? (URLClassLoader をサブクラス化して、loadClass への呼び出しを内部で loadClass(Class clazz, true) として処理するようにしても、どちらも機能しませんでした)

@AutoGenerateGUI
class LoginBean


https://stackoverflow.com/users/1103872/marko-topolnikに感謝 さらに: 動的にロードされたクラスの注釈を取得すると、常に com.sun.proxy.$Proxy[x] が返されるため、元の注釈型に到達する構成体 URLClassLoader が注釈を com.sun.$Proxy$27 としてロードし、プロキシ オブジェクトが実装するインターフェイスを反復処理するという構成を使用する必要がありました。これは必要ではありませんが、実際には instanceof を使用するなどの他のソリューションが失敗しました。

4

1 に答える 1

1

私の推測では、それAutoGenerateGUIはあなたのカスタム アノテーションであり、適切な保持ポリシーを指定していません。デフォルトはRetentionPolicy.CLASSで、クラスのロード後に注釈を破棄します。注釈は、実行時のリフレクションでは使用できません。

于 2013-12-22T12:55:31.930 に答える