0

プロキシ対応ライブラリ (javassist、JDK 動的プロキシなど) を使用すると、実行時にインターフェイスを実装するようにクラスを拡張できることを認識しています。

私の質問は次のとおりです。インスタンス化されたオブジェクトを拡張して、実行時にインターフェイスを実装することは可能ですか (同様に、適切なメソッド ハンドラーを提供します)。

4

1 に答える 1

2

いいえ、既にロードされているクラスを変更することはできません。また、ロードされたクラスを (クラスローダー内で) 置き換えることはできません。

あなたならチャンスがあるかもしれません

  • カスタム クラスローダーでクラスをロードする
  • クラスローダーをアンロードします(クラスもアンロードする必要があります)
  • 変更されたクラスを新しいクラスローダー インスタンスで再度ロードする

しかし、それは非常に、非常に黒魔術です...

于 2011-08-30T17:42:05.500 に答える