JLS 在第 9.6.1 节 ( http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.6.1 ) 中说如下。
“如果在注释类型中声明的方法的返回类型不是以下之一,则这是编译时错误:原始类型、字符串、类、对 Class 的任何参数化调用、枚举类型(第 8.9 节)、注释类型,或元素类型是上述类型之一的数组类型(第 10 节)。”
什么是“类的任何参数化调用”?有什么例子吗?
JLS 在第 9.6.1 节 ( http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.6.1 ) 中说如下。
“如果在注释类型中声明的方法的返回类型不是以下之一,则这是编译时错误:原始类型、字符串、类、对 Class 的任何参数化调用、枚举类型(第 8.9 节)、注释类型,或元素类型是上述类型之一的数组类型(第 10 节)。”
什么是“类的任何参数化调用”?有什么例子吗?
从 Java 5 开始,java.lang.Class
type 是generic,这意味着它可以有一个类型参数。通过文档的参数化调用Class
意味着“Class<...>
使用任何类型的参数”。您可以在同一文档中找到它的示例,例如“示例 9.6.1-2”:
interface Formatter {}
// Designates a formatter to pretty-print the annotated class
@interface PrettyPrinter {
Class<? extends Formatter> value();
// ^^^^^^^^^^^^^^^^^^^^^^^^^^------------ Here
}