アノテーションの中でも、Java SE標準で提供されているアノテーションのことを、標準アノテーションと呼びます。Java SE 8の時点では、以下のようなものがあります。
オーバーライドを明示する – @Overrideアノテーション
そのメソッドがスーパークラスのメソッドをオーバーライド(上書き)していることを宣言します。省略しても動作自体に支障はありませんが、明示することでメソッド名や引数にタイプミスがあった場合には、コンパイラーが警告を発生します。
Triangle.java
- package com.example.mynavi.object;
- public class Triangle implements IAreable {
- ...中略...
- @Override
- public double getArea() {
- return base * height / 2;
- }
- }
非推奨メソッドであることを宣言する – @Deprecatedアノテーション
そのメソッドが非推奨扱いであることを宣言します。このメソッドを使ったコードは、コンパイル時に警告を発生します。
- @Deprecated
- public void hoge() { ... }
警告メッセージを抑制する – @SuppressWarningsアノテーション
コンパイラーが特定の警告を発生するのを抑制します。たとえば下位互換性などの都合で非推奨のメソッドを意図して使っている場合に、いちいち警告が出るのは邪魔です。そのような場合には、このアノテーションで明示的に警告をオフにします。
- @SuppressWarnings("deprecation")
- public static void main(String[] args) {
- ClassSample g = new ClassSample();
- g.hoge(); // 非推奨のhogeメソッド
- }
その他、@SuppressWarningsアノテーションで利用できる設定値には、以下のようなものがあります。
| @SuppressWarningsアノテーションの主な設定値 | |
|---|---|
| 設定値 | 警告の内容 |
| cast | 不要なキャスト |
| deprecation | 非推奨のメンバーを利用 |
| divzero | ゼロで除算 |
| unused | 使われていない変数がある |
監修
山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。