根据Guillaume Laforge,Groovy 1.6.1(我可以假设更高版本)可以直接在Groovy中定义注释。但是,我无法理解下面的简单示例。我尝试在Groovy控制台的1.7.1版本中运行它:
@Bar
@Foo
class A { }
@interface Bar { }
@interface Foo { }
for(ann in new A().getClass().getAnnotations())
{
println ann
}
运行此示例时,控制台将打印
@org.codehaus.groovy.classgen.GroovyCompilerVersion(value=1.7.1)
,没有别的。我在这里做错了什么?
答案 0 :(得分:1)
所以,我明白了。这与我愚蠢地忘记的保留政策有关(我大部分时间都在C#中度过)。
添加策略将解决此问题,例如:
@Retention(RetentionPolicy.RUNTIME)
@interface Bar { }