Java で実際に Swizzle を実行できないことは承知しています。
私はいくつかの調査を行っていましたが、Java でリフレクションを実行して、Swizzle のような動作 (iOS で実行できる) を実現できる可能性があると思います。
犯人 (そして私が今まで見た中で最悪の設計上の決定の 1 つ) は、addView()
すべての Android ViewGroup オブジェクトの関数です。親が null かどうかを明示的に確認する必要があります (必要な動作を得るために親をキャストする必要がある場合もあります!)。きもい。
addView()
クライアントコードがこれを無視できるように、メソッドにこのチェックを自動的に実行させることで、(百万のサブクラスを作成せずに) これの動作を変更したいと考えています。
これはリフレクションでできることですか (私が理解していることから、ルートメソッド呼び出しを実際に変更するのではなく、特別なランタイム呼び出しが必要になるので [十分ではないかもしれません])、または何か他のものですか? それとも、間違った木を吠えていますか?