Kotlinの「アノテーション(Annotations)」は、クラス・関数・プロパティ・式などにメタデータを付加するための仕組みです。アノテーションを使うことで、Kotlinコードに情報を付加し、コンパイラ、リフレクション、ライブラリなどに特定の動作を指示することができます。Javaのアノテーションと互換性があるため、KotlinでもJavaで定義されたアノテーションを使用できます。
1. 基本的な使い方
Kotlinでアノテーションを使用するには、@記号を使ってアノテーションを対象に付加します。
この例では、oldFunctionに@Deprecatedアノテーションを付けて、使用を避けるように促しています。
2. アノテーションの定義方法
Kotlinでは、独自のアノテーション(カスタムアノテーション)を定義することも可能です。
-
@Target: アノテーションを付与できる要素(クラス、関数など)を指定します。 -
@Retention: アノテーションの保持期間を指定します。-
SOURCE: コンパイル時のみ存在。 -
BINARY: バイトコードには存在するが、リフレクションからは見えない。 -
RUNTIME: 実行時にリフレクションで取得可能。
-
使用例:
3. よく使われるアノテーション
| アノテーション | 説明 |
|---|---|
@Deprecated |
古いAPIに対して警告を表示 |
@JvmStatic |
コンパニオンオブジェクト内の関数をJavaからstaticとして呼び出し可能に |
@JvmOverloads |
デフォルト引数を使ったオーバーロードメソッドを自動生成 |
@JvmField |
フィールドをJavaから直接アクセス可能に |
@Throws |
Javaの例外宣言と互換にする |
4. アノテーションとリフレクション
アノテーションはリフレクションと組み合わせることで、実行時にメタデータを取得して動的な処理を行うことが可能です。
5. KotlinとJavaのアノテーション相互運用
KotlinはJavaのアノテーションをそのまま使用可能です。たとえば、JUnitやSpring FrameworkのアノテーションはKotlinでも使用されます。
まとめ
Kotlinのアノテーションは、コードに追加情報を与えることで、開発効率や可読性を高めたり、特定の動作をコンパイラやランタイムに伝えたりする手段です。独自のアノテーションを定義することで、フレームワークやメタプログラミング的な拡張も可能になります。
生成日:2025/05/04