Java 標準アノテーションのサンプル

Javaの標準アノテーションのサンプルです。
JavaSEに標準で用意されています。java.langパッケージにあります。

目次

@Override

メソッドをオーバーライドする必要があることを示す注釈です。
オーバーライドされていない場合はコンパイルエラーになります。
Java クラスの継承とオーバーライドのサンプル

コード

16行目のクラスは、11行目のクラスを継承しています。
18行目は、@Overrideアノテーションです。親クラスにあるprintメソッドがオーバーライドされていない場合、コンパイルエラーになります。

package test1;

public class Test1 {

    public static void main(String[] args) {

        Sample1 s1 = new Sample1();
        s1.print(); //1
    }
}
class Test {
    void print() {
        System.out.println("");
    }
}
class Sample1 extends Test {

    @Override
    void print() {
        System.out.println("1");
    }
}

 

@Deprecated

非推奨であるという注釈です。

コード

13行目は、@Deprecatedアノテーションです。
14行目のメソッドが非推奨であることを示しています。

package test1;

public class Test1 {

    public static void main(String[] args) {

        Sample1 s1 = new Sample1();
        s1.print(); //1
    }
}
class Sample1 {

    @Deprecated
    void print() {
        System.out.println("1");
    }
}

 

@SuppressWarnings

コンパイル時の警告を表示しないようにします。

コード

13行目は、@SuppressWarningsアノテーションで、引数はunusedです。
15行目の変数は未使用で本来なら警告がでますが、@SuppressWarningsアノテーションでその警告をださないようにしています。

package test1;

public class Test1 {

    public static void main(String[] args) {

        Sample1 s1 = new Sample1();
        s1.print(); //1
    }
}
class Sample1 {

    @SuppressWarnings("unused")
    void print() {
        int i;
        System.out.println("1");
    }
}

 

@SafeVarargs

可変長引数でジェネリクスの時に表示される警告を出さないようにします。
Java 可変長引数のメソッドのサンプル

コード

21行目は、@SafeVarargsアノテーションです。
22行目の可変長引数でジェネリクスを使用すると本来なら警告がでますが、@SafeVarargsアノテーションでその警告をださないようにしています。

package test1;
import java.util.ArrayList;
import java.util.List;

public class Test1 {
    public static void main(String[] args) {

        List<String> hiragana = new ArrayList<>();
        hiragana.add("あ");
        hiragana.add("い");
        
        List<String> romaji = new ArrayList<>();
        romaji.add("a");
        romaji.add("b");
        
        Sample1.print1(hiragana,romaji); //[あ, い][a, b]
    }
}
class Sample1{

    @SafeVarargs
    static void print1(List<String>... test){
        for (List<String> c : test) {
            System.out.println(c);
        }
    }
}

関連の記事

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



△上に戻る