如何制作个人网站主页吉林珠海网站建设
news/
2025/10/1 22:57:42/
文章来源:
如何制作个人网站主页,吉林珠海网站建设,怎么做万网网站,互联网网站开发用哪个语言开发ArrayListString[] arrayList new ArrayList[3];//不报错
ArrayListString[] arrayList new ArrayListString[3];//报错
泛型:编译期间检查#xff0c;运行期间类型擦除
数组#xff1a;运行期间检查
第一种情况允许的原因:
因为创建了一个未指…ArrayListString[] arrayList new ArrayList[3];//不报错
ArrayListString[] arrayList new ArrayListString[3];//报错
泛型:编译期间检查运行期间类型擦除
数组运行期间检查
第一种情况允许的原因:
因为创建了一个未指定泛型类型的ArrayList数组然后将它赋值给指定了泛型类型为String的ArrayList数组引用。但是经过擦除后等同于未指定泛型类型的arrayList数组都是Object类型。
第二种情况不被允许的原因:
因为Java不允许直接创建带有具体泛型类型的数组如ArrayListString。这是因为泛型信息在运行时会被擦除而数组需要在运行时知道它们的具体类型换位思考如果被允许运行的时候是object类型那我可以往arrayList集合里面添加Integer类型的对象但是我的泛型是String类型的二者冲突(你会好奇泛型编译期就检查了怎么可能让你在运行的时候添加Integer类型的对象其实通过桥接的方式就可以实现我将代码写在下面了)。
// 假设Java允许这样的声明
ArrayListString[] stringLists new ArrayListString[1];// 由于类型擦除运行时这个数组只知道它包含ArrayList类型不知道具体是ArrayListString
Object[] objectArray stringLists;// 这里没有编译错误因为我们是通过Object数组引用来操作的
// 这样就绕过了编译时的类型检查
objectArray[0] new ArrayListInteger();// 这里尝试获取第一个元素并认为它是ArrayListString
// 但实际上它是ArrayListInteger这就导致了类型不安全
ArrayListString firstList stringLists[0];
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924365.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!