Groovy和annotations—这个示例有什么问题?

Groovy和annotations—这个示例有什么问题?,groovy,annotations,Groovy,Annotations,根据,在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 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)
没有别的了。我做错了什么


.

所以,我想出来了。这与保留政策有关,我愚蠢地忘记了(我大部分时间都在C#度过)

添加策略将解决此问题,例如:

@Retention(RetentionPolicy.RUNTIME)
@interface Bar { } 

所以,我明白了。这与保留政策有关,我愚蠢地忘记了(我大部分时间都在C#度过)

添加策略将解决此问题,例如:

@Retention(RetentionPolicy.RUNTIME)
@interface Bar { }