【Java】アノテーションって何?使い方について解説!

アノテーションとは「コンパイラやツールに付加情報を伝える機能」のことであり、もっと具体的にいうとはJavaを書くときに大切な情報をコメントできるものです。

Javaのプログラムにおいてアノテーションをつけることは必須ではありませんが利用することで可読性があがります。

今回はアノテーションの以下の内容について解説していきます。

⚫︎ @Deprecatedアノテーション
⚫︎ @Overrideアノテーション
⚫︎ @SuppressWarningsアノテーション
⚫︎ Java7で追加された@safeVarargsアノテーション

アノテーションとは

アノテーションとはコード中に注釈を記述することで、コンパイラやツールに付加情報を伝える機能のことをいいます。
Javaプログラムにおいてアノテーションをつけることは必須ではありませんが利用することで可読性があがりますのでつけておいて損はありません。

標準アノテーション

標準アノテーションとして以下の3つのアノテーションがありますのでそれらについて紹介していきます。
⚫︎ @Deprecated
⚫︎ @Override
⚫︎ @SuppressWarnings

@Deprecatedアノテーション

@Deprecatedは使用できるけどできれば使用したくないメソッドやフィールドに対して記述します。
クラス、メソッド、フィールドに記述することができます。

@Overrideアノテーション

@Overrideアノテーションは、メソッドをオーバーライドしたい場合に使用します。
メソッドのみに記述でき、親クラスにないメソッドを記述した場合、このアノテーションによってエラーが発生しますので、メソッド名の誤記などを防ぐことができます。

オーバーライドについてはこちらをご参考ください。

@SuppressWarningsアノテーション

@SuppressWarningsアノテーションは、コンパイル時の警告を出さないようにします。
アノテーションの後ろのカッコ内に、どの警告を出さないようにするかを記述します。

カンマで区切ることで、複数の指定が可能になり、クラス、メソッド、フィールドに記述することができます。

アノテーションを使ったサンプルコード

アノテーションを使ったサンプルコードを紹介します。

@Deprecatedを使う場合

DeprecatedClass.java

Main.java

出力結果

取得する値は あいうえおです
取得する値は あいうえおです

StringAメソッドに@Deprecatedアノテーションを付けることで、非推奨の警告が出ますが古い方のメソッドを削除することなく使用することができます。

@Overrideを使う場合

Override1.java

Override2.java

Main.java

出力結果

出力内容の変更: あいうえお

Override1クラスで定義されているoutputメソッドの内容がOverride2クラスで書き換えられています。

@SuppressWarningsを使う場合

SuppressWarningsClass.java

出力結果

取得する値はあいうえおです
取得する値はあいうえおです

@SuppressWarnings(“static-access”)アノテーションを付けることで、static変数にアクセスするときの警告を出さないようにしています。

また、MainクラスではClassSampleクラスをインスタンス化しても使用していますので、mainメソッドに@SuppressWarnings(“static-access”)アノテーションを付けています。

そして、Mainでは使用していない変数str2とインスタンスswc2に@SuppressWarnings(“unused”)アノテーションを付けることで、「変数を使用していないよ」という警告が発生しないようにしています。

Java7で追加されたアノテーション

Java7から「@safeVarargs」アノテーションが追加されました。

@safeVarargsは可変長引数を持つメソッドをコンパイルした際の警告を抑制するアノテーションであり、staticメソッド、finalインスタンス、コンストラクタのみに記述が可能となります。

元になるメソッド

@SafeVarargsをつけない場合はジェネリクス型は宣言はできますがインスタンスにできないことから警告が表示されてしまいますが、@SafeVarargsをつけることで警告を抑えることができ、コンパイルが通るようになります。

今回のポイント

アノテーションで付加情報を伝える

⚫︎ アノテーションとはコンパイラやツールに付加情報を伝える機能であ理。Javaを書くときに大切な情報をコメントできるものである

⚫︎ アノテーションをつけることは必須ではありませんが利用することで可読性があがる

⚫︎ アノテーションは@Deprecated、@Override、@SuppressWarningsという標準アノテーションがある

⚫︎ Java7で追加された@safeVarargsアノテーションは可変長引数を持つメソッドをコンパイルした際の警告を抑制するアノテーションである

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し