Java数组与泛型
来源:互联网 发布:linux解压t命令gunzip 编辑:程序博客网 时间:2024/05/23 11:33
Java中不能创建泛型数组,例如不能这样写:
原因是:
Java中的泛型并不像C++那样会在编译时实例化成具体的类,或者说Java中的泛型是“伪泛型”。对于一个泛型,程序无法获得它的具体的参数类型,也就是说:
声明a之后,你没法检查a的类型是ArrayList<String>还是ArrayList<Integer>,只能知道a是ArrayList的一个实例化对象。如下代码:
得到的输出信息是:
class java.util.ArrayList
[E]
可以看出,获得a的具体类型的企图落空了。
泛型的这种机制在Java中叫做擦除。即,泛型的具体类型信息会被擦除到它的原生类型或者类型边界。类型边界是Java泛型的另一个特性:
Temp是泛型的名字,Par是边界类的名字。在定义一个泛型的时候,可以通过extends关键词来指定T的导出类型(T的父类),擦除的时候,会擦除到边界,即Par。
而Java中的数组必须知道它所持有的确切类型。
数组名是一个标识符,是一个指向堆栈中的数组对象的引用。如果是基本数据类型的数组,那么这个数组对象中存放着length等信息以及各个元素的值,如果是引用类型的数组,那么这个数组对象中存放着length等信息以及各个元素的引用。数组在定义时就必须有确切的类型,所有存入数组的元素都必须转化成数组的类型。所以Java中泛型和数组可谓水火不相容。
0 0
- Java数组与泛型
- Java数组与泛型
- JAVA中List数组与泛型
- 《Java编程思想》数组与泛型
- Java 泛型总结(二):泛型与数组
- java中数组与泛型的自我理解
- 泛型与数组
- 泛型与数组
- 泛型与数组
- Java 泛型数组
- Java 泛型数组
- Java 泛型数组
- Java 泛型数组
- java 泛型数组
- Java泛型数组
- Java 泛型数组
- Java 泛型数组
- java泛型数组
- [leetcode-61]Rotate List(c)
- squid之安装配置运行
- 根据多年经验整理的《互联网MySQL开发规范》
- 本文示例如何使用SAP FTP Function将文件从应用服务器传输到另外一个FTP服务器上。
- jQuery模拟抛物线轨迹动画
- Java数组与泛型
- Ubuntu 命令配置
- slickedit字体设置——使用Source Code Pro字体
- iOS优化相关---加速Table Views开发的10个建议
- JavaScript之更换超链接
- Sorting it ALL Out(POJ_1094)
- 栈和队列的使用
- hdu2601
- 运维常用表格