Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職

@interface命令

独自のアノテーションを定義する – @interface命令
@intarface name {
definiton
}
name:アノテーション名
definition:アノテーションの定義

@interface命令を利用することで、アノテーションを自分で定義することもできます。たとえば以下は、Versionアノテーションを定義する例です。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Inherited
public @interface Version {
  double value();
}

アノテーション定義では、アノテーションそのものの情報を定義するためのアノテーション(メタアノテーション)を付与できます。以下に利用できる主なメタアノテーションをまとめます。

主なメタアノテーション
アノテーション 概要
@Target アノテーションを付与できる対象(TYPE、METHOD、FIELD、PARAMETERなど)
@Rentention アノテーション情報が維持される範囲(SOURCE、CLASS、RUNTIME)
@Inherited アノテーション情報がサブクラスにも継承されるか

@interface命令の配下には、アノテーションで利用できる属性を指定します。属性は、抽象メソッドと同じく、型と名前のセットで表します。
このように定義された属性は、一般的に「@アノテーション名(属性名=値,…)」の形式で指定できます。ただし、属性名がvalueのときは名前を省略して「@アノテーション名(値)」のように記述できます。
たとえば、以下はVersionアノテーションを指定したannotationTestメソッドの例です。

Animal.java

package com.example.mynavi.object;

public class AnnotationSample {
  @Version(1.0)
  public void annotationTest() {
    System.out.println("Released");
  }
}
アノテーション
標準アノテーション
@interface命令
アノテーションを利用する

Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職