Javaの「アノテーション」とは?使い方・作り方を解説
「Javaを使ってるけど、アノテーションって何?」
と思っているかたのために記事を書きました。
アノテーションは「注釈」を意味する言葉で、Javaを書くときに大切な情報をコメントできるものです。
アノテーションがわかれば、Javaのコードがより見やすくなりますよ。
ただ、アノテーションの種類や使い方など具体的にはわかりにくいところがありますよね。そこでこの記事では
- アノテーションの前に知っておきたい「Javadoc」とは
- そもそもアノテーションとは?
- 主なアノテーションの一覧
- 自作アノテーションとその使い方
の順にアノテーションについて紹介します。
アノテーション、というと難しく感じるかもしれませんが、要するにコードへ書き込む注釈のことです。
ハードルは高くないので、まずはこの記事で概要を理解してしまいましょう!
無料メルマガ登録はこちら:最新のデジタルシフト事例やノウハウをお届けアノテーションの前に知っておきたい「Javadoc」とは
本題に入る前に、Javadocコメントを知っておきましょう。
「Javadoc」とはJavaに書き込めるコメントのことです。
これを使うことで、プログラムについての説明をソースコードに付け加えられます。
- プログラムが書かれたファイル
- プログラムの説明が書かれたファイル
という2つのファイルを管理するのではなく、Javadocでソースに直接コメントして、2つを同時に管理します。
使い方は、以下のように書きます。
/**
* java ドキュメンテーションコメント
* @author yamada
* @version 1.2
* /
コメントの”@(アットマーク)”から書かれた文字列がJavadocです。
そして、
- @author
- @version
という、意味をもったタグをつけ、コメントとして機能させます。
そもそもアノテーションとは?
Javadocについてざっくりとお伝えしたところで、ここからはアノテーションについて紹介していきます。
アノテーションとは、英語で「注釈、注記」などの意味がある言葉です。
Javaのコード上では”@(アットマーク)”からはじまり、コードでは表現しきれない情報を、補足としてつけ加えられます。
具体的に記述する場所は
- クラス
- インターフェース
- メソッド
- メンバ変数
- メソッド引数
などがあります。
Javaにアノテーションが必要な理由
「アノテーションって、結局のところただの注釈なの?」
と思ったかたもいるかもしれません。
注釈という意味のアノテーションですが、できることはたくさんあります。
例えば、チームでの開発をするときに、コーディングのやり方を統一することもできます。
テキストや口頭で伝えるのも大切ですが、実際にコードを書くところにルールを書いておくことで、ミスを避けることが可能です。
ほかにもアノテーションは、記述することで
- コンパイラの警告メッセージを出なくする
- プログラムを実行する環境に合わせて、動作を変える
などができます。
主なアノテーション一覧
アノテーションは、
- データがあるかどうか
- データの数
によって以下の3つに分けられます。
- データが無く、名前だけのマーカー(@Override、@Deprecatedなど)
- データをひとつだけ持つ単一アノテーション(@SuppressWarningsなど)
- 複数のデータをもつフル・アノテーション
よく使うアノテーションは
- @Override:親クラスにないメソッドをエラーにし、記述の間違いをなくす
- @Deprecated:Javaの記述が非推奨のものだと表す
- @SuppressWarnings:無理なメソッドの記述で起こる警告を見せないようにする
の3つです。
アノテーションは自作できる
標準のアノテーションを紹介しましたが、結局のところ一番よく見るのは自作のアノテーションです。
アノテーションを独自で作るためには、「メタアノテーション」というものを使う必要があります。
例えば
- @Target :独自に定義したアノテーションが、何を対象に利用できるものかを宣言する
- @Retention :コンパイル・プログラムの処理で、アノテーションの情報を保持するかどうかを決める
- @author:プログラムをつくった人の名前を書く
などです。
自作アノテーションの定義にはJavaファイルを専用で作る必要があります。
できることはこの他にもたくさんあるので、まずは基本からチェックして、徐々に他のものに手を出していきましょう。
アノテーションを活用して、コードを見やすくしよう
アノテーションについて、基本的な使い方・作り方を紹介しました。
まずJavadocについて、
- プログラムが書かれたファイル
- プログラムの説明が書かれたファイル
という2つのファイルを管理するのではなく、ソースに直接コメントして同時に管理するとお伝えしましたね。
そもそもアノテーションとは、英語で「注釈、注記」などの意味がある言葉で
- クラス
- インターフェース
- メソッド
- メンバ変数
- メソッド引数
などに記述します。
具体的なできることは
- コードを書く場所にルールを書き、ミスをなくす
- コンパイラの警告メッセージを出なくする
- プログラムを実行する環境に合わせて、動作を変える
などです。
そしてアノテーションは、
- データがあるかどうか
- データの数
によって
- データが無く、名前だけのマーカー(@Override、@Deprecatedなど)
- データをひとつだけ持つ単一アノテーション(@SuppressWarningsなど)
- 複数のデータをもつフル・アノテーション
の3つに分けられます。
よく使うアノテーションは
- @Override:親クラスにないメソッドをエラーにし、記述の間違いをなくす
- @Deprecated:Javaの記述が非推奨のものだと表す
- @SuppressWarnings:無理なメソッドの記述で起こる警告を見せないようにする
の3つです。
アノテーションを自分で作るために必要な「メタアノテーション」には
- @Target :独自に定義したアノテーションが、何を対象に利用できるものかを宣言する
- @Retention :コンパイル・プログラムの処理で、アノテーションの情報を保持するかどうかを決める
- @author:プログラムをつくった人の名前を書く
などがあり、専用でJavaファイルを作る必要があるとお伝えしました。
アノテーションを活用できれば、Javaのコードが見やすくなり、ミスを減らしつつ効率的に開発できます。
まずは、アノテーションの種類から理解していきましょう!
この記事を書いた人
佐々木 ゴウ
大手Sierや、ECコンサルティング会社での経験を活かし、ファッションや食品などの各種商品ジャンルから、バックオフィス、ITインフラ系まで幅広く執筆が可能。webライティングの講師や、メディアコンサルティング、採用系メディアの編集長なども請け負っている。趣味は盆栽。