Java泛型

来源:互联网 发布:防sql注入的asp代码 编辑:程序博客网 时间:2024/05/21 17:22

Java的泛型是靠擦除来实现的,编译器看到的只是原生类型。具体见《java编程思想》P373

Set<Object>是个参数化类型,表示可以包含任何对象类型的集合;Set<?>则是一个通配符类型,表示只能包含某种未知对象类型的一个集合;Set则是一个原生态类型,它脱离泛型系统。前两种是安全的,最后一种是不安全的。

泛型只是在编译时强化它们的类型信息,并在运行时丢弃(或者擦除)它们的元素类型信息。擦除就是使泛型可以与没有使用泛型的代码随意进行互用。