大神们,下面的代码如何理解?

BigBox124 2020-07-22 11:42:35

class Convert<T> {
List<T> listT = new ArrayList<>();
public <K> Convert<K> convertTo(Class<K> clz) {
List<K> listK = new ArrayList<>();
listT = (List<T>) listK;
return (Convert<K>) this;
}
}

对应代码:“listT = (List<T>) listK;”在实际业务中泛型从的类除了都实现了 Serializable 接口外,没有任何关系,为什么不同类型可以强转还不报错,正常执行。
...全文
4241 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2020-07-24
  • 打赏
  • 举报
回复
引用 楼主 BigBox124 的回复:
对应代码:“listT = (List<T>) listK;”在实际业务中泛型从的类除了都实现了 Serializable 接口外,没有任何关系,为什么不同类型可以强转还不报错,正常执行。
我觉得这个就是同种类泛型之间的转换,当然可以咯。既然是泛型写成T类还是K类逻辑上肯定没问题。
BigBox124 2020-07-24
  • 打赏
  • 举报
回复
我知道了,是因为泛型擦除的原因造成的
CS_草祭先生 2020-07-23
  • 打赏
  • 举报
回复
你可以看看这篇帖子: https://blog.csdn.net/youanyyou/article/details/100910242

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧