Erasure of Generic Types
在类型擦除过程中,Java编译器将擦除所有类型参数,如果类型参数是有界的,则将每个参数替换为其第一个边界;如果类型参数是无界的,则将其替换为Object
。
以下表示单个链表中的节点的通用类为例:
因为类型参数T
是没有边界的,Java编译器将它替换为Object
:
下面这段代码中通用Node
类使用了有界类型参数:
Java编译器将有界的类型参数T
替换为它的第一个边界类Comparable
:
Last updated
在类型擦除过程中,Java编译器将擦除所有类型参数,如果类型参数是有界的,则将每个参数替换为其第一个边界;如果类型参数是无界的,则将其替换为Object
。
以下表示单个链表中的节点的通用类为例:
因为类型参数T
是没有边界的,Java编译器将它替换为Object
:
下面这段代码中通用Node
类使用了有界类型参数:
Java编译器将有界的类型参数T
替换为它的第一个边界类Comparable
:
Last updated