猿问

您好,想了解一下,关于List集合使用泛型与不使用泛型有什么区别??

java中List集合使用泛型与不使用泛型有什么区别?
例如:List lists=new ArrayList();和List<String> lists=new ArrayList<String>();他们两者有什么样区别?

12345678_0001
浏览 280回答 2
2回答

噜噜哒

从list中取出的值不一样,第一种的话取出来是object类型的,需要强制类型转换,而第二个不用,取出来之后直接就是string类型的

白猪掌柜的

泛型其实还有一个通俗的名字:参数化类型(使用参数指明了该传什么类型)。就是明确指定了运行期集合中对象的类型。如果没有泛型,那我一切的对象直接使用Object和强制类型转换就解决了不是吗?但是这种有个问题,就是会在运行期出现随处可见的强制类型转换异常ClassCastException。而指定了参数化类型,是不是我们在编译期就进行检查了,传入List<String>类型,List里面只能放入String,你add其他类型编译不会通过的,就不要提运行期检查了。。。所以你提泛型搞不懂就理解为参数化类型这个事就完事了
随时随地看视频慕课网APP

相关分类

Java
Android
我要回答