Я хочу определить некоторые аннотации и использовать их в Scala.
Я изучил исходный код Scala, найденный в пакете scala.annotation
, там есть некоторые аннотации вроде ] tailrec
, переключатель
, elidable
и так далее. Итак, я определил некоторые аннотации, как они:
class A extends StaticAnnotation
@A
class X {
@A
def aa() {}
}
Затем я пишу тест:
object Main {
def main(args: Array[String]) {
val x = new X
println(x.getClass.getAnnotations.length)
x.getClass.getAnnotations map { println }
}
}
Он печатает некоторые странные сообщения:
1
@scala.reflect.ScalaSignature(bytes=u1" !1* 1!AbCaE
9"a!Q!! 1gn!!.<b iBPE*,7
Ii#)1oY1mC&1'G.Y(cUGCa#=S:LGO/AA!A 1mI!)
Кажется, я не могу получить аннотацию aaa.A
.
] Как правильно создавать аннотации в Scala? И как их использовать и получить?