Groovy и аннотации — что не так с этим примером?

Согласно Гийому Лафоржу, в Groovy 1.6.1 это возможно ( и я бы предположил более поздние версии) для определения аннотаций непосредственно в Groovy. Однако я не могу понять простой пример ниже. Я пытаюсь запустить это в версии 1.7.1 консоли Groovy:

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

и ничего больше. Что я здесь делаю неправильно?

Похожий вопрос.


person Eyvind    schedule 08.04.2010    source источник


Ответы (1)


Итак, я понял это. Это было связано с политикой хранения, о которой я по глупости забыл (проводя большую часть своих дней в C#).

Добавление политики исправит это, например:

@Retention(RetentionPolicy.RUNTIME)
@interface Bar { } 
person Eyvind    schedule 08.04.2010