Android StudioのKotlinのファイル種別

概要

Android StudioでKotlinを使って開発をしていると、いくつかファイルの種別があることに気が付きました。
そこでファイル種別によって何が違うのか調べてみました。

Kotlinのファイル種別

Android Studioのプロジェクトツールウィンドウを見るとファイルのアイコンが5種類あることが分かります。
また、拡張子が表示されているファイルと表示されていないファイルがあることが分かります。

さらに、Kotlinのファイルを新規作成しようとすると5種類のファイル種別から選択することになることが分かります。

トップレベルの関数・プロパティ・クラス・オブジェクト・インターフェース

ファイル種別について理解する前に、Kotlinの言語仕様を理解する必要があります。
Kotlinでは、Javaと異なりトップレベル(パッケージ直下)に関数やプロパティを宣言することが出来ます。

// file name: Example.kt
package foo

private fun foo() { println("Hello!") }
public var bar: Int = 5

Kotlinファイルとそれ以外

ここで結論を書くと、トップレベルに一つのクラス・インタフェース・Enumクラス・オブジェクトしかない場合は該当のファイル種別になり、拡張子が表示されません。
トップレベルに複数のクラス・インタフェース・Enumクラス・オブジェクトがあったり、関数やプロパティが宣言されているとKotlinファイルとして分類されます。

// このファイルはトップレベルにクラスが1つしかないのでKotlinクラスです。
package dev.a2hs.kotlinfilekindtest

class KotlinClass {
    fun sayHello() {
        println("Hello!")
    }
}
// このファイルはトップレベルに要素が複数あるのでKotlinファイルです。
package dev.a2hs.kotlinfilekindtest

private fun foo() { println("Hello!") }
public var bar: Int = 5

class KotlinFile {
    fun sayHello() {
        println("Hello!")
    }
}

まとめ

トップレベルに複数の要素がある場合はKotlinファイルになります。
トップレベルにひとつのクラス・インタフェース・Enumクラス・オブジェクトしかない場合は、該当のファイル種別になります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です