jes*_*slg 9 reflection annotations scala scala-2.10
我试图发现特征的值是否有与之关联的注释.回顾斯卡拉2.10-M7反射API后,我认为getAnnotations方法(位于符号)可能是一个伟大的候选人,但它返回一个空的列表,如下面的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()
Run Code Online (Sandbox Code Playgroud)
这些"注释"是否与我试图处理的注释相同?我怎么知道a是否用W注释?
看起来像一个bug:https://issues.scala-lang.org/browse/SI-6325
更新.实际上,它不是一个错误,而是一个非显而易见的注释如何在Scala中工作的方式.有一种方法可以根据需要在特征中使用抽象注释的val.有关更多详细信息,请查看上述链接中的讨论.
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |