如何参数化注释?

时间:2014-04-17 06:40:42

标签: java inheritance annotations

使用java我可以编写类似的东西

public <T extends Enum> getValue (Class<T> clazz) {}

有没有办法不从Enum参数化,而是从Annotation进行参数化?所以我想写下这样的例子:

public <T extends @interface> getValue (Class<T> clazz) {}

我的目标是在编译时确保 clazz变量是注释。有任何想法吗? (在方法中调用class.isAnnotation除外)

1 个答案:

答案 0 :(得分:1)

是的,所有注释类型都是java.lang.annotation.Annotation的子类。

  

所有注释类型扩展的通用接口。

使用

public <T extends Annotation>  void /* or whatever */ getValue (Class<T> clazz) {}