Android Studio最速入門~効率的にコーディングするための使い方

第37回 リファクタリング・カタログ

この記事を読むのに必要な時間:およそ 8 分

はじめに

今回は,数多くあるAndroid Studioのリファクタリングメニューについて,1つずつ紹介していきます。表題のカッコは対応するコマンド名です。それぞれの内容の詳細については,IntelliJ IDEA Web Helpが詳しいです。

リネーム(Rename, Rename File)

実はリネームは2種類あります。"Rename..."は前回説明したとおりですが,もう一方の"Rename File..."は今回初めて紹介します。名称からわかるようにファイル名のリネームだけを行います。

Javaのファイルに対して"Rename File..."を実行すると,ファイル名しか変わりません。クラス名はそのままです。"Rename..."でもファイル名のリネームはできるので,正直なんのためにあるかわかりません。

使い方

  1. エディタや「Projectツールウィンドウ」上で,リネームしたいファイルやシンボルを選択
  2. "Rename..."を実行

シグネチャの変更(Change Signature)

メソッドの宣言部や呼び出し部分で実行すれば,メソッドシグネチャの変更。クラスの宣言部や型指定部分で実行すればクラスシグネチャの変更になります。

メソッドシグネチャでは,メソッドの引数だけではなく,可視性,戻り値,送出する例外を変更することができます。

図2 ⁠Change Class Signature」ダイアログ(クラスの時)

図2 「Change Class Signature」ダイアログ(クラスの時)

図3 ⁠Change Signature」ダイアログ(メソッドの時)

図3 「Change Signature」ダイアログ(メソッドの時)

使い方
  1. エディタ上で,シグネチャを変更したいメソッドやクラスにカーソルを置く
  2. "Change Signature..."を実行

型のマイグレーション(Type Migration)

インスタンス変数や型パラメタの型を他の型に変換します。たとえば intStringに,といった具合です。

図4 ⁠Type Migration」ダイアログ

図4 「Type Migration」ダイアログ

使い方
  1. エディタ上で型を表している部分にカーソルを置く
  2. "Type Migration..."を実行

スタティック化(Make Static)

インスタンスメソッドや内部クラスをスタティックに変換します。

図5 ⁠Make Method Static」ダイアログ

図5 「Make Method Static」ダイアログ

使い方
  1. 「Structureツールウィンドウ」やエディタ上で,スタティック化したいメソッドやクラスを選ぶ(エディタの場合,カーソルを置く)
  2. "Make Static..."を実行

インスタンスメソッドに変換(Convert To Instance Method)

スタティックメソッドをインスタンスメソッドに変換します。先ほど紹介した「スタティック化」の逆を行います。

図6 ⁠Convert To Instance Method」ダイアログ

図6 「Convert To Instance Method」ダイアログ

使い方
  1. エディタ上で変換したいメソッドにカーソルを置く
  2. "Convert To Instance Method..."を実行

移動(Move)

主に「Projectツールウィンドウ」上でのファイルの移動に用いますが,メソッドや内部クラスも対象にできます。

図7 ⁠Move Members」ダイアログ

図7 「Move Members」ダイアログ

使い方
  1. 「Projectツールウィンドウ」「Structureツールウィンドウ」⁠エディタ上で対象を選ぶ(エディタの場合,カーソルを置く)
  2. "Move..."を実行
    • 「Projectツールウィンドウ」の場合は,ドラッグ&ドロップで移動(Move)になります。さらに「Show Members」オプションを有効にすると,メンバの移動もドラッグ&ドロップで可能になります。
    • にもかかわらず,⁠Structureツールウィンドウ」ではドラッグ&ドロップ操作はできません。

コピー(Copy, Clone)

主に「Projectツールウィンドウ」上でのファイルのコピーに用います。移動ではメソッドやフィールドなどのメンバも対象にできましたが,コピーはクラスやインターフェイスのみが対象です。

"Clone..."は「Rafactor」メニューに存在しないのですが,"Find Action..."や「Preferences / Keymap」でその存在を確認することができます。"Copy..."との違いは「コピーを(コピー元と)同じディレクトリに作成するかどうか」の違いしかありません。実にしょうも無い違いなので "Clone..." は忘れていても困ることはありません。

図8 ⁠Copy」ダイアログ(上)「Clone」ダイアログ(下)

図8 「Copy」ダイアログ(上)と「Clone」ダイアログ(下)

使い方
  1. 「Projectツールウィンドウ」やエディタ上で対象を選ぶ(エディタの場合,カーソルを置く)
  2. "Copy..." または "Clone..." を実行
    • 「Projectツールウィンドウ」の場合は,ドラッグ&ドロップで移動(Move)⁠Ctrlキーを押しながらドラッグ&ドロップでコピー(Copy)になります。

安全な削除(Safe Delete)

主に「Projectツールウィンドウ」上でのファイルの削除に用います。移動Move...と同じく,クラスやインターフェイス以外にメソッドやインスタンス変数なども削除対象になります。

図9 ⁠Safe Delete」ダイアログ

図9 「Safe Delete」ダイアログ

使い方
  1. 「Projectツールウィンドウ」「Structureツールウィンドウ」⁠エディタ上で対象を選ぶ(エディタの場合,カーソルを置く)
  2. "Safe Delete..." を実行

著者プロフィール

今井勝信(いまいまさのぶ)

システムエンジニア。日本ユニシス株式会社所属。仙台在住。

Android開発はまったくやったことがないけれどIntelliJ IDEAが大好き。

Twitter: @masanobuimai

コメント

コメントの記入