= アノテーション =
== 参考 ==
* [[http://d.hatena.ne.jp/Kazuhira/20110828/1314524208]]
* [[http://blog.sibrof.net/ken/2008/05/29/797/]]
== 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
}}}