■■ アノテーション(注釈)とは ■■
アノテーションは、Javaプログラムの中に補助的な情報を付加するための機能です。
メタデータとも呼ばれます。
標準アノテーション型は下記です。
①Override
②Deprecated
③SuppressWarnings
①▲▲Override▲▲
Override アノテーションは、メソッドにつけることのできるアノテーションです。
Override アノテーションは、メソッドがオーバーライドしていることを宣言します
Class AnnoSample {
public void a() {
}
}
Class AnnoSample_B extends AnnoSample {
@Override public void a() {
}
}
例えばオーバライドでない場合、
メソッドはそのスーパークラスのメソッドをオーバーライドしません。 とエラーとなる
// オーバーライドではなくオーバーロードとなる
// @Overrideを使用したため、コンパイルエラーが出る
@Override void a(float f) {
}
|
②▲▲Deprecated ▲▲
Deprecatedアノテーションも、javacコンパイラがサポートするアノテーションの1つです。
古くて使用が推奨されないAPIに対してDeprecatedアノテーションを適用すると、
コンパイル時に警告を表示させることができます。
Class AnnoSample {
public void a() {
}
}
Class AnnoSample_B extends AnnoSample {
@Deprecated public void a() {
}
}
下記のようなエラーがでます。
$ javac Class AnnoSample_B.java
注: Class AnnoSample_B.java は推奨されない API を使用またはオーバーライドしています。
注: 詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。
|
③▲▲SuppressWarnings ▲▲
このアノテーションには、指定した警告メッセージの表示を抑制する働きがあります。
AnnoSample1.java:7: 警告:[unchecked] raw 型 java.util.List のメンバとしての add(E) への無検査呼び出しです。
1: import java.util.*;
2:
3: // 警告[unchecked]が表示される例
4: public class AnnoSample1 {
5: public void a() {
6: List list=new ArrayList();
7: list.add("Hello");
8: }
9: }
③-1エラーを表示させないために方法
1: import java.util.*;
2:
3: // 警告[unchecked]の表示を抑制する例
4: public class AnnoSample2 {
5: @SuppressWarnings("unchecked")
6: public void a() {
7: List list=new ArrayList();
8: list.add("Hello");
9: }
10: }
③-2エラーを表示させないために方法
●ジェネリックスを使ってプログラムを書き換えれば、警告は表示されない
List
list=new ArrayList
();
list.add("Hello");
|