什么是Class的参数化调用

时间:2013-02-13 11:43:23

标签: java annotations jls

JLS,第9.6.1节(http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.6.1)说明如下。

“如果在注释类型中声明的方法的返回类型不是以下之一,则是编译时错误:基本类型,字符串,类,类的任何参数化调用,枚举类型(第8.9节) ),注释类型或数组类型(第10节),其元素类型是前面的类型之一。“

什么是“Class的任何参数化调用”?任何一个例子?

1 个答案:

答案 0 :(得分:2)

从Java 5开始,java.lang.Class类型是泛型,这意味着它可以具有类型参数。通过 Class 的参数化调用,文档意味着“Class<...>具有任何类型的参数”。您可以在同一文档中找到它的示例,例如“例9.6.1-2”:

interface Formatter {}

// Designates a formatter to pretty-print the annotated class
@interface PrettyPrinter {
    Class<? extends Formatter> value();
//  ^^^^^^^^^^^^^^^^^^^^^^^^^^------------ Here
}