いくつかのレガシー コードに静的メソッドがあり、複数のクライアントから呼び出されます。明らかに、それをオーバーライドしたり、依存性注入によって動作を変更したりするオプションはありません。既存のクラスを変更することはできません。
私が今やりたいことは、リフレクションを使用して動作を変更することです (そのメソッド - 同じ署名と戻り値の型を使用)。
出来ますか ?そうでない場合、どの設計パターンでも私を救うことができますか?
ありがとう !
編集:何を変更/変更できるかについて混乱があります。既存のクラス/メソッドを変更することはできませんが、プロジェクトにクラスを追加することはできます。既存のクラスでできる最善のことは、それらに注釈を付けることです。これはすべて、既存のコードを壊さないようにするためです。これは、大きなプロジェクトの完全なテスト ラウンドを意味します。
編集 2: java.lang.Instrumentation は Android では利用できません。