Marker Interfaceパターンとはインターフェイスをマーキングのために使うパターン。
Java 5.0以降やScalaではアノテーションが使える。
Scalaのアノテーションは、Annotation traitがまずあって、
StaticAnnotaion と ClassfileAnnotation が Annotation を extends している。
現状(Scala 2.8)ではScalaのライブラリにClassfileAnnotationは含まれるが、
これを継承してクラスを作成しようとするとエラーになる(将来的には実装される予定)。
JavaのアノテーションのRetentionPolicy=RUNTIMEみたいなことはScalaではできない。
やりたい場合はJavaでアノテーションを記述することになる。
現在のところScalaで使えるアノテーションは全てがStaticAnnotationのサブクラス。
@native, @deprecated, @cloneable etc
自作アノテーションを作る場合はこんな感じに記述する。
class hoge extends StaticAnnotation {}