5

Javaで実行時にクラスを追加(または既存)する方法はありますか?実行時に既存のクラスを拡張し、これをクラスパスに追加して、この新しいクラスを取得する必要があるという問題に悩まされています。

ありがとう、

4

3 に答える 3

12

これを行うにはいくつかの方法があります。

  • javax.toolsパッケージを使用して実行時にソースコードをコンパイルし、 ClassLoaderを使用してそれらをロードします。
  • インターフェイスに書き込んでいる場合は、プロキシを使用してクラスを装飾できます。
  • BCELASM(後者はアノテーションなどの言語機能をより最新にサポートしています)などのテクノロジーを使用して、バイトコードの操作/生成のより複雑なルートを取り、ClassLoaderを使用してクラスをロードします。

他にも選択肢があると思います。

于 2009-06-18T09:22:49.533 に答える
4

あなたはBCELを見たいかもしれません。あなたが何をする必要があるかについてのこれ以上の情報がなければ、より具体的な答えを与えるのは難しいです。

于 2009-06-18T08:25:04.800 に答える
0

この機能が必要な理由を必ず書いてください。実行時にロジックを追加または置換しようとする場合は、スクリプトAPIといくつかの実際の実装を確認することをお勧めします。

于 2009-06-18T09:07:22.997 に答える