《Java 核心技术 卷一》 关于 泛型的 类型擦除 ,除了 调用泛型方法 和 访问泛型字段 会 先擦除再强制转换, 其他地方没有这种机制了吗 ?

java 的泛型的类型擦除,除了 调用泛型方法访问泛型字段先擦除再强制转换 , 其他地方没有这种机制了吗 ?

比如下面这张图, 为什么 new T[2] 始终是 构造 Comparable[2] 数组, 就不会像上面一样再 增加一个 强制类型转换吗 ? 比如 这里的 T 的类型是 A (A 实现了 Comparable 接口),
T[ ] mm = new T[2]; 就应该是 先构造 Comparable[2] 数组,再强制转换为 A[ ] 呀 !

阅读 1.6k
3 个回答

数组属于底层数据结构,从道理上来说也应该不支持这种不是那么正规的泛型。new T[2] 这种方式无法通过编译吧。List<T>的方式通过object转换,也是应用层的取巧方式,属于曲线救国。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题