java - 什么是类的参数化调用

标签 java annotations jls

JLS,在第 9.6.1 节 ( http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.6.1 ) 中说了以下内容。

“如果注释类型中声明的方法的返回类型不是以下类型之一,则这是一个编译时错误:原始类型、String、Class、Class 的任何参数化调用、枚举类型(第 8.9 节) )、注释类型或数组类型 (§10),其元素类型是上述类型之一。”

什么是“类的任何参数化调用”?有什么例子吗?

最佳答案

从 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
}

关于java - 什么是类的参数化调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14852765/

相关文章:

java - android:checkableBehavior 以编程方式设置

java - 实现无法实例化的类的正确方法

java - java注解中的私有(private)字段

java - 错误::0 找不到引用的切入点注释

java - JLS 似乎自相矛盾

java - 创建视差背景

java - 如何使用 Spring-Batch 读取由 id 列分块的 csv 行?

java - @scope - spring - 使用注释设置范围 "prototype",行为类似于单例。我哪里出错了?

Java final 字段编译时常量表达式

java - Java 交集类型与接口(interface)类和类型变量的限制