Java / 基礎 / アノテーション

Java / 基礎 / アノテーション

コレ自体に特に効果は無く、Javaコードの中に合法的に何かの「印」を貼り付ける方法

このアノテーションが付けられたJava資産に対して何かの Java的 操作を行うことができる。

アノテーションを使うこと自体がメタな操作をやりたいという意図がアリアリである。 それは Java の文法要素に対してアノテーションが付与されるわけだから、その文法要素に対して操作を何かしらしたいということだからである。 この連携先が、Java の世界では無い場合はそれも若干なっとくできるが、結局 Java の世界で閉じるなら、継承なり、インタフェースなり、メソッド実装なりで世界を構築したほうがよい。 一旦メタの世界を入れてしまうと最後までメタで走らなければいけなくなるので Java の強みが薄れる。

アノテーションのクラス情報

アノテーション情報そのものを引数に取ったり返却したりするメソッドを作りたい場合アノテーションのクラス情報が必要になる。アノテーションそのものは Annotation クラスを継承していると考える

なのでアノテーション情報を受けてアノテーション情報を返すメソッドのシグネチャはこうなる。

public static <A extends Annotation> A hoge(Class<A> annotationType){
}

使う場合はこんな感じになる。Piyo がアノテーションである。

Piyo piyo = hoge(Piyo.class);
java/basic/annotation/start.txt · 最終更新: 2020-12-18 16:56 by ore