JLS,第9.6.1节(http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.6.1)说明如下。
“如果在注释类型中声明的方法的返回类型不是以下之一,则是编译时错误:基本类型,字符串,类,类的任何参数化调用,枚举类型(第8.9节) ),注释类型或数组类型(第10节),其元素类型是前面的类型之一。“
什么是“Class的任何参数化调用”?任何一个例子?
答案 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
}