Java 標準アノテーション

Javaの標準アノテーションについてです。

標準アノテーション

JavaSEに標準で用意されている主なアノテーションです。
java.langパッケージにあります。

アノテーション 説明
@Override メソッドをオーバーライドする必要があることを示す注釈です。オーバーライドされていない場合はエラーになります。
@Deprecated 非推奨であるという注釈です。
@SuppressWarnings コンパイル時の警告を表示しないようにします。

コード

サンプルのコードです。

package test1;

/**
 * 標準アノテーションのサンプル
 */
class Test {
	void print() {
		System.out.println("");
	}
}

class Sample1 extends Test {
	// オーバーライドしていない場合はエラーになる
	@Override
	void print() {
		System.out.println("1");
	}
}

class Sample2 {
	// 非推奨であるという注釈
	@Deprecated
	void print2() {
		System.out.println("abc");
	}
}

public class Test1 {
	// コンパイル時の警告を表示しない
	@SuppressWarnings("deprecation")	
	public static void main(String[] args) {
		Sample1 s1 = new Sample1();
		s1.print();

		Sample2 s2 = new Sample2();
		s2.print2();
	}
}

コードの実行

上記コードの22行目に@Deprecatedがあります。
そのため30行目の@SuppressWarnings("deprecation")を記述しない状態で、コマンドプロンプトでコンパイルを実行すると以下のメッセージが表示されます。

javac Test1.java
 注意:Test1.javaは非推奨のAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。

 

上記メッセージの詳細を表示するために、-Xlint:deprecationオプションを指定してコンパイルすると以下のメッセージが表示されます。対象の行数とメソッド名が表示されました。

javac Test1.java -Xlint:deprecation
Test1.java:36: 警告: [deprecation] Sample2のprint2()は非推奨になりました
s2.print2();
^
警告1個

@SuppressWarnings("deprecation")を記述すると上記のメッセージは表示されなくなります。

関連の記事

Java 独自のアノテーションを作成して値を取得するサンプル




△上に戻る