使用注释作为方法参数

时间:2013-12-01 09:58:48

标签: groovy annotations

这是与Use an annotation as a typed method parameter类似的问题,但这个问题是否适用于Groovy编程语言。

在Groovy中,是否可以使用类注释作为类型化方法参数。例如 - 这是您的注释

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Entity {
}

然后

@Entity
public class Car {
...
}

然后再做

interface Persister {
     void persist(Entity entity);
}

...

由于

1 个答案:

答案 0 :(得分:1)

是。当您从某个成员中获取Entity类时,可以获取该实例:

import java.lang.annotation.*

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@interface Entity { }


@Entity
class Car { }


def persist(Entity entity) {
  println "entity=$entity"
}


car = new Car()
entity = car.class.getAnnotation(Entity)
persist entity // this will print "entity=@Entity()"