0

次の問題があります。

  • コードを書いていて、ソースを変更できないパッケージで Java Bean を使用したいと考えています。
  • このパッケージには、特定の Java Bean にバグがあります。私の場合の解決策は、このフィールドを削除して (ソースがあれば) + 再コンパイルすることです。
  • 問題のあるフィールドなしで、ソースに同じパッケージ + クラスを書きたいと思います (jar のソースがないため)。
  • 実際のシナリオはもう少し複雑です。

実装を開始する前に、これを行うための最良の方法について相談したいと思います。

4

5 に答える 5

0

jar 内の既存のソース コードを実際に変更することはできません (ここで間違っているかもしれませんが、今は方法がありません)。あなたができることは、クラスローディングレベルとアスペクト指向のアプローチ(バイトコード操作など)で作業することです。これにより、ロード時にクラス、メソッドなどのソース コードを変更できます。しかし、私はそれを本当にお勧めしません。あなたが本当にそれを望んでいるなら、それは可能性があるかもしれません.

于 2012-11-29T06:43:50.237 に答える
0

あなたは今春の側面をしていますか?ポイントカットを構成してメソッド呼び出しをインターセプトし、「アドバイスの周り」を使用して独自のコードを呼び出し、元の . 詳細: http://static.springsource.org/spring/docs/3.1.1.RELEASE/spring-framework-reference/html/aop.html

于 2012-11-29T06:46:49.493 に答える
0

おそらく、ここでAdapter Design Patternを探していると思います。ただし、このパターンを使用すると、元のクラスを変更/変更するのではなく、独自の継承クラスを (同じパッケージ内で) 使用することに注意してください。

于 2012-11-29T06:40:06.723 に答える
0

元のソース コードをリバース エンジニアリングして、独自の Bean を作成し、それを jar に追加するのはどうですか? もちろん、jar のライセンスがこのアプローチを禁止していない場合。

これは比較的単純で、最新のリバース エンジニアリング ツールを使用すると、読み取り可能なソース コードが提供されます。

コンパイルされたクラスのリバース エンジニアリングを可能にするツールはたくさんあります。私は最近、Eclipse プラグインとして 1 つを使用しました。

于 2012-11-29T06:40:36.683 に答える
0

最良の方法は、同じパッケージ構造で同じ Java Bean を書き直し、jar ファイルではなくユーザー定義コードが最初に参照されるようにクラスパスの順序を設定することです。

于 2012-11-29T06:41:38.807 に答える