gpt4 book ai didi

scala - 如何在Scala 2.10中反射(reflect)注释?

转载 作者:行者123 更新时间:2023-12-04 04:18:16 25 4
gpt4 key购买 nike

我试图发现某个特征的值是否具有与之关联的注释。回顾了Scala 2.10-M7反射API之后,我认为getAnnotations方法(位于Symbol中)可能是一个不错的选择,但它返回的是一个空列表,如以下REPL session 所示:

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()

这些“注释”是否与我要处理的注释相同?我怎么知道a是否用W注释?

最佳答案

看起来像个错误:https://issues.scala-lang.org/browse/SI-6325

更新。实际上,这不是错误,而是注解在Scala中如何工作的非显而易见方式的结合。有一种方法可以使特征中的抽象带注释的val正常工作。请查看上述链接的讨论以获取更多详细信息。

关于scala - 如何在Scala 2.10中反射(reflect)注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12303603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com