Java泛型函数的运行时类型检查的问题 - linux编程基础 - 编程开发
设为首页 加入收藏

TOP

Java泛型函数的运行时类型检查的问题
2018-03-02 06:57:28 】 浏览:197
Tags:Java 函数 行时 类型 检查 问题

在一个数据持久化处理中定义了数据保存和读取的 泛型函数的,但是在运行时出现类型转换错误,类型不匹配,出错的位置不是load方法,而是在调用load方法之后,得到了列表数据,对列表数据进行使用时出现的。结果列表里面的元素实际是A类型,调用load方法传递的是B类型的class,但是仍然load成功。


很是疑惑,最终修改代码调试后,解决问题。


loadArrayList方法是错误的实现,下面的loadArrayList2是正确的实现。


原因分析:泛型的类型信息在运行时是丢弃掉的,准确叫擦除(erasure),只有在编译时起到语法检查的作用。最初的loadArrayList方法只是检查了列表类型,没有检查列表中的元素的类型,所以是不严谨的。



编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go语言实现HTTP服务器并解析heade.. 下一篇C语言求解线性方程组

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

windows编程基础

linux编程基础

C/C++面试题目