Android / Annotations / Programming

ザクっと理解するAnnotations(アノテーション) – Android Java Kotlin

Annotations(アノテーション)

アノテーションとは、指定したプログラムに対して情報を付与することを指します。
ただし、コードの実行内容には影響を与えません。
※アノテーションは、データ(プログラム)を説明するためのデータであるため、メタデータと呼ばれます

下記が、アノテーションを行う主な理由です。

コンパイラーに対する情報提示コンパイラーのエラー検知や警告の非表示に使用されます
コンパイル時、デプロイメント時の処理ソフトウェアツールの、コードなどの自動生成処理に使用されます
実行時の処理実行時に使用されます

アノテーションの基礎

@(アットマーク)をつけることで、その後ろに続く内容がアノテーションであることを、コンパイラーに示します。

@Composable
fun AnnotationsBasics() { ... }

アノテーションの要素の指定が可能です。
要素名は、要素の数が1つである場合にのみ省略可能です。
「@Composable」のように、要素のないアノテーションでは丸括弧の省略が可能です。

// 複数要素の場合
@Author(
   name = "Benjamin Franklin",
   date = "3/27/2003"
)
class MyClass { ... }

// 単数要素で名前指定の場合
@SuppressWarnings(value = "unchecked")
fun myMethod01() { ... }

// 単数要素で名前省略の場合
@SuppressWarnings("unchecked")
fun myMethod02() { ... }

1つの宣言(クラスや関数など)に対して、複数のアノテーションが可能です。

@Author(name = "Jane Doe")
@EBook
class MyClass { ... }

同じアノテーションの指定も可能です。
これを反復アノテーション(Repeating Annotation)と呼びます。

// 毎週金曜日の23時と月末に処理を実行
@Schedule(dayOfMonth="last") // 月末を設定
@Schedule(dayOfWeek="Fri", hour="23") // 毎週金曜日の23時を設定
public void doPeriodicCleanup() { ... }

おわりに

知りたいことや質問等がありましたら、コメントまでお願いします。

参考文献

Annotations ORACLE Java Documentation

関連記事

・ザクっと理解する @Qualifier – Android Dagger Hilt (作成中)

コメント

コメントを残す

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