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

第16回 エディタの話[その8]─いろいろなコード生成方法と比較

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

はじめに

コード生成に必要な主要コマンドはほぼ説明したので,おさらいも兼ねてケース別に整理しておきます。

エディタの話とはズレるのですが,説明する機会を逸しそうなので,番外編としていろいろな比較についても紹介します。

新しいクラスやファイルの作成

第3回でも紹介していますが,メニューバーの「File → New...」でJavaを選択して作成します。Javaを選択した時のダイアログでクラスなのかインターフェイスなのかを選択できますが,生成したコードのキーワードが「class/interface/enum/etc..」になるだけなので,それほど意味はないです。とりあえずクラスを生成してあとでキーワードを変えるだけでも十分です。

図1 ⁠File → New」によるクラスの作成

図1 「File → New」によるクラスの作成

クラス名の入力フィールドにはパッケージ名から指定する事もできます(存在しないパッケージの場合,そのパッケージも作成します)⁠

作成するクラスやインターフェイスのひな形は第12回で紹介した「Preferences / File and Code Templates」「Templatesタブ」で定義します。

図2 クラスやインターフェイスのひな形の定義箇所

図2 クラスやインターフェイスのひな形の定義箇所

EclipseやNetBeansのような「Javaクラス作成ウィザード」のようなものはありません。筆者は,気軽にクラスやファイルを作成できるため,このインターフェイスを気に入っています。

既存のクラスやインターフェイスから新しいクラスを作成する

クラスやインターフェイスの宣言文にカーソルを当て "Show Intention Actions" を実行すると,サブクラスや実装クラスを作成できます。

図3 サブクラスや実装クラスを作成する

図3 サブクラスや実装クラスを作成する

この仕組みは第13回で紹介したとおりです。

既存のクラスからテストクラスを作成する

詳細は次回説明しますが,テストを作りたいクラスをエディタで開き,メニューバーの「Navigate → Test」で表示するポップアップから「Create New Test...」を選びます。

またはサブクラス作成と同様に "Show Intention Actions" から「Create Test」を実行します。ただ選択できるテストケースが「GroovyTest」⁠JUnit3」⁠JUnit4」しかないので,Android開発でどれほど役に立つのかは疑問が残ります。

図4 テストクラスの作成(クリックすると動きがわかります)

どちらにしてもプロジェクトにテストフォルダが設定されていることが前提条件となります。Eclipseを使っている人向けに一言で説明すると「Android StudioにはQuick JUnit相当の機能が含まれています」ということです。

メソッドのオーバライド,実装を作成する

幾通りかあります。

メニューバーの「Code → Generate...」「Override Methods...」を選ぶ。

図5 ⁠Code → Generate...」でメソッドのオーバライド(クリックすると動きがわかります)

「⁠Code → Generate...」でメソッドのオーバライド` &title=`図5 ⁠Code → Generate...」でメソッドのオーバライド` &width=`307` />

メニューバーの「Code → Override Methods...」「Code → Implement Methods...」を選ぶ。

図6 ⁠Code → Override Methods...」でメソッドのオーバライド(クリックすると動きがわかります)

「⁠Code → Override Methods...」でメソッドのオーバライド` &title=`図6 ⁠Code → Override Methods...」でメソッドのオーバライド` &width=`400` />

コードのextendsimplementsに指定している抽象クラスやインターフェイスにカーソルを当てて "Show Intention Actions" から「Implement Methods」を実行する(抽象クラスやインターフェイスのようにメソッドの実装が強制されている場合のみ,メニュー項目が出てきます)。

図7 ⁠implements」に指定しているインターフェイスからメソッドを実装(クリックすると動きがわかります)

「⁠implements」に指定しているインターフェイスからメソッドを実装` &title=`図7 ⁠implements」に指定しているインターフェイスからメソッドを実装` &width=`400` />

コード補完(Basic補完)の選択候補からオーバライドするメソッドや実装するメソッドを選択する。

図8 コード補完からメソッドを実装したりオーバライドする(クリックすると動きがわかります)

どれを使うかは好みや慣れですが「Code → Generate...」「Override Methods.../Implement Methods...」の時だけJavadoc生成の考慮があります。

オーバライドしたり実装したりするメソッドのひな形は,先ほど紹介したクラスやインターフェイスと同じく「Preferences / File and Code Templates」「Codesタブ」で定義します。

図9 オーバライドや実装するメソッドのひな形の定義箇所

図9 オーバライドや実装するメソッドのひな形の定義箇所

それぞれのひな形の定義場所を以下に示します。ひな形の定義は「メソッドの中身(Method Body)⁠だけで,Javadocコメントのひな形は定義するところがありません。

Implemented Method Body
実装メソッドのひな形
Overridden Method Body
オーバライドしたメソッドのひな形
New Method Body
新規作成したメソッドのひな形(詳しくは後述します)

未定義状態のソースコードからクラスやメソッドを作成する

存在しないクラスやメソッドをあえてソースコードに記述し,そこに指摘されたインテンションメニューから対象を作成する方法です。

たとえばクラスの場合,図10のように宣言部(左辺)と生成部(右辺)とでインテンションの項目が異なります。

図10 ソースコードからクラスやインターフェイスを生成する

図10 ソースコードからクラスやインターフェイスを生成する

メソッド作成のインテンションは図11のとおりです。

図11 ソースコードからメソッドを生成する

図11 ソースコードからメソッドを生成する

クラスやインターフェイスの場合,図12のようなダイアログにて「どこに生成するのか?」と問い合わせてきますが,メソッドについてはこれと言った問い合わせなく生成を実行します。

図12 クラス生成時のダイアログ

図12 クラス生成時のダイアログ

この方法で生成するクラスやインターフェイス,メソッドは生成前のソースコードの文脈を考慮してある程度の型を推測して生成します。

著者プロフィール

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

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

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

Twitter: @masanobuimai

コメント

コメントの記入