我试图发现特征的值是否有与之关联的注释。在查看了Scala 2.10-M7反射API后,我认为 getAnnotations 方法(位于 Symbol 中)可能是一个很好的候选者,但它返回一个空列表,如图所示在以下REPL会话中:
scala> class W extends scala.annotation.Annotation
defined class W
scala> trait A { @W val a: Int }
defined trait A
scala> typeOf[A].members.last
res0: $r.intp.global.Symbol = value a
scala> res0.getAnnotations
res1: List[$r.intp.global.AnnotationInfo] = List()
这些“注释”是否与我试图处理的注释相同?我怎么知道 是否用 W 注释?
答案 0 :(得分:6)
看起来像一个错误:https://issues.scala-lang.org/browse/SI-6325
更新。实际上,这不是一个错误,而是一个非显而易见的注释如何在Scala中工作的组合。有一种方法可以根据需要在特征中使用抽象注释的val。有关更多详细信息,请查看上述链接中的讨论。