可能重复:
如何创建注释并在 scala 中获取它们
其他示例获取带注释的类的注释。我想做的是获取类字段的注释(此测试中的版本),如下所示:
import java.lang.annotation.{RetentionPolicy, Retention}
import annotation.meta.field
class AttribField() extends scala.annotation.StaticAnnotation
object MyTypes { type Attrib = AttribField @field }
import MyTypes._
case class TestClass(@Retention(RetentionPolicy.RUNTIME)
@Attrib version: Option[String])
object TestMe {
def main(args: Array[String]) {
val testObj = new TestClass(version = Some("1"))
testObj.getClass.getDeclaredFields.foreach(field => {
field.setAccessible(true)
println("field: name=" + field.getName + " value=" + field.get(testObj))
field.getAnnotations.foreach(x => println("x="+x)) // nothing in here
field.getDeclaredAnnotations.foreach(x => println("y="+x)) // nothing in here
// does not even compile
// field.getAnnotation(classOf[AttribField])
})
}
}
我想测试是否有某个注释,然后分支。但我不能通过去。一定有一些基本的东西我错过了,但是什么?