jarファイルからクラスのメソッド[print]を使用しています。これはログの印刷に使用されます。今私はログフレームワークを適用し、すべてのファイルをプロジェクトログを印刷するためのjarファイルメソッドを使用する必要があります。すべてのファイルを変更せずに実行する方法はありますか? jarファイルクラスも変更できません。前もって感謝します。既存のコードに最小限の変更でログフレームワークを適用する
1
A
答えて
1
あなたが変更することはできませんのjarファイルであるclass X
を持っていると仮定すると、その印刷方法がでX
をサブクラス化、static
あるので、あなたは、すべてのコードの上に
X.print("something");
の束を持っていますそれをオーバーライドしようとしても、何も得られません(静的呼び出しは継承を使用しません;少なくともJavaでは)。これらの呼び出しをすべて検索して、選択したログ方法で置き換える必要があります。
ただし、次にあなたがY
S(特にprint
の用途のために検索する必要はありません)との事で、すべてのX
Sを置き換えることができます
public class Y extends X {
// ADD constructors calling super(constructorArgs) here
public static void print(String s) {
// ADD use of logging framework here
}
// ADD all other static methods: call X.methodName(methodArgs);
// all other dynamic methods: inheritance does it for you
}
を持つからの利益は、正常に動作する必要がありますすることができます。
場合は、代わりに、あなたは
X x = new X(/* args here */);
// ... and lots of these
x.print("something");
を持っているこの方法は、静的ではなく、new Y
でフォームnew X
のすべての呼び出しを交換しても問題を解決するだろう。あなたは多くのファイルを変更するでしょうが、それぞれに最小限の変更を加えました。 Y
クラスで変更されるのは、print
は、もはやstatic
ではないということです。
関連する問題
- 1. javaFXのGUIに最小限の変更を適用する方法
- 2. 最小限のサイズ変更
- 3. 最小限のコードで複数の要素のinnerHTMLを変更する
- 4. 非同期Tornadoコードを最適化します。スレッドロックを最小限にする
- 5. Flot JQueryライブラリを使用して既存のプロットの最小/最大軸を変更する
- 6. 既存のシステム接続を最適化する最適化アルゴリズム
- 7. django - 既存のコードをModelFormインスタンスに変更する方法
- 8. 既存のマクロにFONTコードを適用します。
- 9. 既存のクラスにコンストラクタを最小効果で追加する
- 10. CSSがウィンドウの変更を最小限に抑える
- 11. 既存のMySQLデータの一括更新パフォーマンスを最適化
- 12. Rails - 既存のレコードを保存し、コピーに更新を適用する方法?
- 13. 既存のクエリの最適化
- 14. 最小限のコード変更で文字列を変換する方法を教えてください。
- 15. Rails/Refinery CMS:既存のアプリケーションに追加する+ CMSを介して既存のコードを変更する
- 16. 最小限のコードで複数の段落を挿入する
- 17. クリックリスナーのためのコードを最小限にする
- 18. このコードを最小ヒープから最大ヒープに変更するには
- 19. SQL文のコードを最小限にして改善する
- 20. Javascript/jQueryポップアップウィンドウのコードを最小限にする
- 21. 最小限のコマンドラインユーティリティ用package.json
- 22. 既存のコードでbroswer幅に基づいて画像URLを変更する
- 23. iOSアプリケーション:コードの変更を最小限に抑えてログを有効にする
- 24. このJavaScriptコードを既存のコードに適用する際に役立つことが必要です
- 25. Javaの依存関係を最小限にする
- 26. ウェブアプリケーションで使用するイメージのサイズを最小限にする
- 27. 既存のクリスタルレポートを変更する
- 28. 既存のデータセットを変更する
- 29. 既存のモデルを変更/アップグレードする
- 30. SQL - 既存の行を変更する
だから、何か他の方法(プリント)でそれを変更せずにやりたいのですか?はいの場合、あなたは影をつけることができますが、それは悪いデザインです –