アノテーション
参考
Javaに劣るScalaの機能
実行時に参照可能なアノテーションはScalaでは定義できない
それらはJavaコードで定義してScalaで利用するようにする。実行時に参照不可能なアノテーションは定義できる?
しかし、そのようなものは大して意味が無い。
サンプル
package testing; import java.lang.annotation.*; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @interface SomeAnno { String something(); }
@SomeAnno(something="/foo/bar") class AnnoTest { } class NoTest { } object Annotations { def main(args: Array[String]) { val someAnno = classOf[AnnoTest].getAnnotation(classOf[SomeAnno]) println(someAnno.something) val noAnno = classOf[NoTest].getAnnotation(classOf[SomeAnno]) println(noAnno) } }
実行結果
/foo/bar null