社会人のメモ帳

忘れたくないことアレコレ

【第8週】第8章:既存アノテーションを実装する【Java Gold合格へ向けて】

PREV | LIST | NEXT

Java Gold合格へ向けて

アノテーションとはクラスやメソッドに独自の特性を指定するための機能であるという定義の説明は、前記事でまとめさせていただいた。しかしながら、そんなアノテーションの実際の使い方については言及がなかったため、ここにまとめさせていただく。

アノテーションの使い方

せっかくなのでGitHubで公開している自分のソースコードから流用する形で紹介させていただこう。常々気になるところがあれば毎日のように更新をかけているので、あまり記事では使いたくなかったのだが……。

メソッドに特性追加リンク

/**
 * JDBCの実装 実装クラス
 *
 */
public class JdbcExecuteImpl implements JdbcExecute {

    /**
     * 指定したケースの処理を実行する
     *
     * @param testCase 実施テストケース
     * @return 実行結果
     */
    @Override
    public ResultData execute(testCaseEnum testCase) {
    /* 割愛 */
    }
}

上記はメソッドにインタフェースの実装メソッドであることを示す@Overrideアノテーションを使ったケースだ。JdbcExecuteImplクラスはJdbcExecuteクラスをimplements(実装)しており、JdbcExecuteインタフェースにはResultData execute(testCaseEnum testCase)が抽象メソッドとして定義されている。

スーパークラスの抽象メソッドリンク

/**
 * JDBCの実装 インタフェース
 */
public interface JdbcExecute extends ExecuteTemplate<JdbcExecute.testCaseEnum> {

    /**
     * 実行可能なテストケース
     */
    enum testCaseEnum {
        DELETE("DELETE"),
        INSERT("INSERT"),
        SELECT("SELECT");

        public final String outline;

        testCaseEnum(String name){
            this.outline = name;
        }
    }

    /**
     * 指定したケースの処理を実行する
     *
     * @param testCase 実施テストケース
     * @return 実行結果
     */
    ResultData execute(testCaseEnum testCase);
    /* 割愛 */
}

コードを見て貰えば分かる通り、メソッドにアノテーションによって特性を付けたい場合は、対象のアノテーションを上に記述するだけで実装できる。記述としてはとてもシンプルで分かりやすい。覚えるとすれば、それによって付与される特性である。

既存アノテーションと付与される特性

主にJava Goldで問われる既存で用意されているアノテーションは下記の5つ。

名称 特性
@Override スーパークラスのメソッドをオーバーライドすることを示す
@Deprecated 非推奨の要素であることを示す
@SuppressWarnings コンパイラの警告を無効にする
@FunctionalInterface 関数型のインタフェースであることを示す
@Safe 非推奨の要素であることを示す

それぞれのより詳細な内容について本記事でまとめようかと思ったが、思ったよりも一記事としての内容が