アノテーション
参考
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
