サイトのトップへ戻る

Android Studio ドキュメント 日本語訳

サイト内検索

Java クラスや型を作成する

Create New Class ダイアログとファイルテンプレートを使って、 Android Studio は以下のような新しいクラスと型を素早く作成できるよう手助けをします:

  • Java クラス
  • 列挙体とシングルトンクラス
  • インタフェースとアノテーション型

Create New Class ダイアログの各項目を入力してOKをクリックした後、 Android Studio はスケルトンコードを含んだ .java ファイルを作成します。 このコードには、インクルードしたパッケージ文、必要なインポート文、ヘッダ、クラスや型宣言が記述されています。 次に、このファイルにコードを記述します。

使用するファイルテンプレートによってAndroid Studioが生成するスケルトンコードが変わります。 Android Studio付属のファイルテンプレートを使用することも、それらをカスタマイズして自分の開発プロセスに合わせることもできます。

現状、 Android Studio のダイアログとテンプレートは IntelliJ IDEA のものとは異なります。 バージョン2.2より前の Android Studioでファイルテンプレートをカスタマイズしていた場合、 ダイアログで新たに追加されたフィールドを使いたいのであれば、テンプレートを変更して Android Studioの要件に準拠させる必要があります。



ファイルテンプレートの表示とカスタマイズ

Android Studio では、Create New Classダイアログで新しいクラスと型をどのように作成するかを決定するファイルテンプレートが用意されています。 これらのテンプレートをカスタマイズすることができます。

Android Studio 2.1.xおよびそれ 以前のダイアログではName 欄と Kind 欄がありました。 Android Studio 2.2およびそれ以降のダイアログでは、図1で示すように、Superclass, Interface(s), Package, Visibility, Modifiers, Show Select Overrides Dialogといったオプションがさらに増えています。

図1。Android Studio 2.2 およびそれ以降の Create New Classダイアログ

Android Studio のファイルテンプレートには、Velocity Template Language (VTL)コードとそれら追加オプションを処理する変数が含まれています。 Create New Class ダイアログでは、 アノテーション型, クラス, 列挙体, インタフェース, シングルトンのファイルテンプレートを使用します。

Create New Class ダイアログで使用されているテンプレートをカスタマイズしたことがない場合、 Android Studio のバージョン2.2 及びそれ以降をインストールした時にAndroid Studio が自動的にテンプレートを更新します。

Android Studio 2.2以前の環境にて Create New Classダイアログで使用されるテンプレートをカスタマイズした場合、 新たに追加されたダイアログオプションが使用したいのであれば、次で説明する手順でテンプレートを編集する必要があります。

テンプレートを閲覧してカスタマイズした箇所を探すには、以下の手順を行います。:

  1. Project ウィンドウで、Java ファイルやフォルダーを選び、その後 File > New > Edit File Templatesの順で選びます。
  2. それ以外にも、Windows や Linuxの場合は File > Settings > Editor > File and Code Templates > Filesの順で選んでもできます。 Macの場合、Android Studio > Preferences > Editor > File and Code Templates > Filesの順で選んでもできます。

    File and Code Templates ダイアログもしくは Preferences or Settings ダイアログが表示されます。 テンプレートの一覧では、内蔵のテンプレート名は太字フォントで表記されます。 カスタマイズしたテンプレートは、青のような強調色で表示されます。

  3. 必要に応じてテンプレートファイルをカスタマイズします。
  4. Create New Classダイアログのフィールドを使用したいのであれば、変更内容がAndroid Studio ファイルテンプレートコードに準拠しているか確認してください。 Android Studio 2.2以前の環境で任意のファイルテンプレートをカスタマイズしたことがあり、それらがCreate New Class ダイアログで使用される場合、 新しく追加されたダイアログオプションを使用したいのであればテンプレートを更新する必要があります。 あなたが作成したテンプレートとAndroid Studio ファイルテンプレートコードを比較し、 Android Studio テンプレートのダイアログに適用される部分へ統合します。

VTLを含むテンプレートの詳細については、File and Code TemplatesFile and Code Templates Dialogを参照してください。



Java クラスや型を作成する

Android Studio は、Java クラス、列挙体、シングルトンクラス、インタフェース、ファイルテンプレートに基づくアノテーション型を新規に作成する際に手助けをしてくれます。

Java クラスや型を新規に作成するには、以下の手順に沿って作業します。:

  1. Project ウィンドウ内で、Java ファイルもしくはフォルダーを右クリックしてNew > Java Classの順で選びます。
  2. それ以外にも、Projectウィンドウ内でJava ファイルもしくはフォルダーを選ぶかコードエディター内でJava ファイルをクリックします。 それからFile > New > Java Classの順でクリックします。

    あなたが選んだ項目によって、新しく作成するクラスや型の既定パッケージが決まります。

  3. Create New Class ダイアログ内で、以下の欄を入力します:
    • Name - 新たに作成するクラスもしくは型の名前。Javaの名前要件に準拠していなければなりません。ファイル名の拡張子は入力しないでください。
    • Kind - クラスか型どちらかのカテゴリーを選びます。
    • Superclass - 新たに作成するクラスで継承するクラス。パッケージ名とクラス名を両方入力することも、クラス名だけを入力して表示されたドロップダウンリストの中から目的のパッケージ名をダブルクリックし、オートコンプリートすることもできます。
    • Interface(s) - 新たに作成するクラスや型で実装する一つ以上のインタフェース。複数のインタフェースを指定する場合は、スペースとその後ろにコンマを付けて区切ってください。スペースを付けるかどうかについては任意です。 パッケージ名とインタフェース名を両方入力することも、インタフェース名だけを入力して表示されたドロップダウンリストの中から目的のパッケージ名をダブルクリックし、オートコンプリートすることもできます。
    • オートコンプリートは、最初に入力するインタフェース名のみ動作します。 コンマとそれに続くインタフェース名でツールチップエラーが表示されるかもしれませんが、コードの生成には影響ないので無視してください。

    • Package - 作成するクラスや型が配置されるパッケージ。 欄内には自動的に既定値が表示されます。 入力欄にパッケージ名を入力すると、パッケージ識別子の中で存在しない部分が赤く強調表示されます;その場合、 Android Studio はあなたがOKをクリックした後にそのパッケージを作成します。 この欄は必ず入力されている必要があります;そうしないと Javaファイルは package 文を含めることができず、クラスや型がプロジェクトのパッケージ内に配置されません。
    • この既定値は、あなたがどのように Create New Class ダイアログを起動したかによって変わります。 Projectウィンドウで最初にJava ファイルやフォルダーを選択していた場合、選択した項目のパッケージが既定値になります。 コードエディター上のJava ファイル内で最初にクリックした場合、そのファイルを含むパッケージが既定値になります。

    • Visibility - このクラスもしくは型が全てのクラスから参照できるか、このパッケージ内でのみ参照できるかを選びます。
    • Modifiers - ClassAbstract もしくはFinalの 修飾子を付けるか、それとも何も付けないかを選びます。
    • Show Select Overrides Dialog - Kindの欄でClassを選んだ場合、このオプションにチェックを入れてOKクリック後にSelect Methods to Override/Implement ダイアログ が開くようにしてください。 このダイアログでは、上書きや実装を行いたいメソッドを選ぶことができます。すると、 Android Studioは選択したメソッドのスケルトンコードを生成します。

    選択したKind に存在しない入力欄は非表示となります。

  4. OKをクリックします。
  5. Android Studio は編集可能なスケルトンコードの記述された Java ファイルを作成します。このファイルはコードエディタで開きます。

メモ: File > New > Singleton の操作もしくは File > New > Java Classの操作でシングルトンクラスを作成することができます。; 後者のやり方の方がより多くのオプションを設定できます。



Android Studio のファイルテンプレート

この章では、VTLスクリプト言語で記述されたAndroid Studioファイルテンプレートコードの一覧を記載し、最後に各変数の定義を記載しています。 Create New Class ダイアログで入力した値は、このテンプレートの変数値に代入されます。 Note that the lines that begin with #if (${VISIBILITY} extend all the way to the open brace ( { ).



アノテーション型のファイルテンプレート

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end @interface ${NAME} #if (${INTERFACES} != "")extends ${INTERFACES} #end {
}


クラスのファイルテンプレート

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end #if (${ABSTRACT} == "TRUE")abstract #end #if (${FINAL} == "TRUE")final #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end {
}


列挙体のファイルテンプレート

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end {
}


インタフェースのファイルテンプレート

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end {
#end {
}


シングルトンのファイルテンプレート

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end {
    private static final ${NAME} ourInstance = new ${NAME}();

    #if (${VISIBILITY} == "PUBLIC")public #end static ${NAME} getInstance() {
        return ourInstance;
    }

    private ${NAME}() {
    }
}


ファイルテンプレートの各変数

テンプレートファイルの各変数は、Javaファイル生成時にAndroid Studioが実際の値と置き換えます。 実際の値は、Create New Classダイアログであなたが入力します。 テンプレートは、使用可能な以下の変数を持っています。:

  • IMPORT_BLOCK - スーパークラスやインタフェースをサポートするのに必要なimport文を改行で区切った一覧、もしくは空の文字列("")。 例えば、Runnableインタフェースを実装して継承は何もしない場合、この変数は "import java.lang.Runnable;\n"になります。 Runnableインタフェース を実装して Activity クラスを継承する場合、この変数は"import android.app.Activity;\nimportjava.lang.Runnable;\n"になります。
  • VISIBILITY - このクラスをパブリックアクセスにするかどうか。この変数は PUBLIC もしくは PACKAGE_PRIVATEいずれかの値になります。
  • SUPERCLASS - 一つのクラス名、もしくは空。この値が入っていた場合は、新規作成するクラス名の後にextends ${SUPERCLASS} の文が追加されます。
  • INTERFACES - コンマで区切られたインタフェースの一覧、もしくは空。この値が入っていた場合はスーパークラスの後ろに、もしくはスーパークラスを継承していない場合は新規作成するクラス名の後ろに、 implements ${INTERFACES}の文が追加されます。 インタフェースとアノテーション型の場合、インタフェースにはextendsキーワードが付きます。
  • ABSTRACT - このクラスを抽象化するかどうか。この変数は TRUE もしくは FALSEいずれかの値になります。
  • FINAL - このクラスに final 修飾子を付けるかどうか。この変数は TRUE もしくは FALSEいずれかの値になります。