泛型使用注意事项 博客分类: Java
参数化类型可以引用一个原始类型的对象,编译报告警告,例如,
Collection<String> c = new Vector();//可不可以,不就是编译器一句话的事吗?
原始类型可以引用一个参数化类型的对象,编译报告警告,例如,
Collection c = new Vector<String>();//原来的方法接受一个集合参数,新的类型也要能传进去
参数化类型不考虑类型参数的继承关系:
Vector<String> v = new Vector<Object>(); //错误!///不写<Object>没错,写了就是明知故犯
Vector<Object> v = new Vector<String>(); //也错误!
编译器不允许创建泛型变量的数组。即在创建数组实例时,数组的元素不能使用参数化的类型,例如,下面语句有错误:
Vector<Integer> vectorList[] = new Vector<Integer>[10];
泛型中的类型参数严格说明集合中装载的数据类型是什么和可以加入什么类型的数据,注意:Collection<String>和Collection<Object>是两个没有转换关系的参数化的类型。
假设Vector<String> v = new Vector<Object>();可以的话,那么以后从v中取出的对象当作String用,而v实际指向的对象中可以加入任意的类型对象;假设Vector<Object> v = new Vector<String>();可以的话,那么以后可以向v中加入任意的类型对象,而v实际指向的集合中只能装String类型的对象。肯定会报错了
推荐阅读
-
泛型使用注意事项 博客分类: Java
-
使用java 进行数字签名 博客分类: JavaJava Web sign签名数字签名验证签名校验签名
-
[转]使用JUnit4与JMockit进行打桩测试 博客分类: JAVA拾遗 jmockit
-
java反射应用实例 博客分类: java反射field泛型 java泛型field反射
-
使用Java操作PDF文档 博客分类: 编程语言 JavaPdfItext
-
表格的使用及案例 博客分类: java web htmlweb
-
表格的使用及案例 博客分类: java web htmlweb
-
使用Java ImageIO类进行批量图片格式转换(转载) 博客分类: 图像处理 ImageIO
-
使用二进制替代解决全排列问题 博客分类: java算法 算法全排列字符串二进制
-
Java使用Jsoup简单解析页面 博客分类: Java Tools jsoup