【发布时间】:2015-05-13 11:41:31
【问题描述】:
Java 中不允许创建泛型类型对象数组。数组没有足够的类型信息来根据运行时的类型检查 ArrayStoreException 和 ClassCastException。这就是原因。但是,Effective java 中第 24 条的第一段说,
当你使用泛型编程时,你会看到很多编译器警告: 未经检查的强制转换警告,未经检查的方法调用警告, 未经检查的通用数组创建警告和未经检查的转换 警告。你获得的仿制药经验越多,越少 您会收到警告,但不要期望新编写的代码使用 可以干净编译的泛型。
什么是泛型数组创建警告?如果我们要创建一个泛型类型对象的数组,我们必须得到一个编译错误。为什么要警告?应该是错误。
提前谢谢你。
【问题讨论】:
-
应该什么错误? ;)
-
也许this 会回答你的问题。
-
例如 List
strings = new ArrayList [10];给我们一个编译错误。但作者解释说创建通用数组是一个警告。为什么? -
抱歉勘误。不是运行时异常。这是一个编译错误。
-
@inherithandle 上面的语句给你一个编译错误,因为你混淆了对象创建和数组创建语法。