Как создавать аннотации и получать их в scala

Я хочу определить некоторые аннотации и использовать их в 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? И как их использовать и получить?

17
задан cvogt 7 August 2015 в 05:40
поделиться