albatrosary's blog

UI/UXとエンタープライズシステム

【熊本】【Java】アノテーション入門に参加してきた

前回はSpring Bootだったが今回はもう少し基本的なところでアノテーション。まぁ「注釈」というくらいなのでマーキング程度だと思うのですが、アノテーションベースで色々な振る舞い(処理)が行われるとはてさてという感じになるのでがっつりお勉強した。

kumamotojava.doorkeeper.jp

やったこと

まずアノテーションを身につける前に基本的なデザインパターン実装をやった

  1. リフレクション
  2. Factoryパターン
  3. Proxyパターン

一通り終わった後に待望のアノテーション。アノテーションは「NotNull」チェック用のアノテーションを作った、そうこう言う感じってか何もしていない。やっぱり何もしていない。。。(俺は正しかった)。。。

package megascus.annotation.handson.beanvalidation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 *
 * @author albatrosary
 */
//アノテーションを使用できる種別
@Target(value={ElementType.FIELD, ElementType.PARAMETER})  
//実行時に有効(リフレクションを使って読み取ることができる)
@Retention(RetentionPolicy.RUNTIME) 
//このアノテーションがついていることをJavaDocに表示する @RetentionがRetentionPolicy.RUNTIME の時はつけておく
@Documented
//@java.lang.annotation.Inherited アノテーションのターゲットがクラスの場合にサブクラスに伝播させる
public @interface NotNull {
    public String message() default "{0} の値がnullです。";
}

これを作った後に、作ったアノテーション「@NotNull」を使った簡単なサンプルを。 最後に、どうもこのハンズオン資料をアップした直後、「きしだ」さんという方がブログを書いた(「書きやがった」と言っていた)らしくそちらも合わせて読むと良いとのことです。

資料

利用した資料はこちら:

github.com

「きしだ」さんのブログはこちら:

d.hatena.ne.jp

最後に

昔やってたのもありJavaは気持ちよく書ける言語だなと。もうちょっと触る機会を増やそう。熊本最高