AndroidStudioを実際にさわったことがない上での回答で恐縮ですが・・・
おそらくは「ない」と思えます。AndroidStuiodの元となったIntelliJ IDEAやEclipseからの類推です。リファクタリング機能の価値と思えるのは以下のような点だと思います。
- よくある設計変更に対応していること
- 機械的にチェックが行えるような矛盾のない関連情報の変更ができること
さて「ある基底クラスを別の基底クラスに変更する」とした場合、「その派生クラスのextends/implementsを置き換えることで発生する関連情報の変更はない」ので手で置き換える以上の機能は(IDE提供者にとって)必要と感じない気がします。
リファクタリングは「似たようなことを一括で行う」というよりは「ある変更に関連する全ての情報を矛盾なく変更すること」にポイントがあると考えるとこの機能は「リファクタリング機能が狙っているものとはちょっと違う」と思えるのです。
全てのメソッドの置き換えについては「参照先のメソッドが自分が定義したクラスの単一のメソッド」であるならリファクタリングでメソッドMoldの定義と参照を全部Mnewへ置き換え(名前だけの置き換えになってしまいますが)、手でMnewの定義をコピーしてMoldを復活させた上でMnewの実装を変更するといったやり方ならできると思います。そういうパターンの変更でなければやはりリファクタリング的な変更ではないのかも知れません。
ちなみに「あるソースディレクトリ配下の全ソースの基底クラスBoldをBnewに置き換える」というのでよければリファクタリング機能ではなくそれを単純なテキスト置換と考え、IDEにある「複数ファイルの正規表現によるパターン置換」で代替できるかも知れません。IntelliJ IDEAにはありますがAndroidStudioにもこの機能はあるのではないでしょうか。
以上あくまで推測なので違っていたらスミマセン。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/17 08:46