【发布时间】:2014-01-11 08:31:42
【问题描述】:
我正在尝试为 3 个 ArrayLists 定义一个数组,每个数组都包含一个双精度数组。我使用了以下语法:
ArrayList<double[]> testSamples[] = new ArrayList[] {
new ArrayList<double[]>(), new ArrayList<double[]>(), new ArrayList<double[]>()
};
但是,当我编译代码时,这会生成 “警告:[未检查] 未检查转换” 警告。 注意:代码工作正常,我只是试图(正确地)修复我的语法以解决警告。由于代码有效,Java似乎支持它,我很困惑为什么我不能写类似的东西(这会产生编译错误):
ArrayList<double[]> testSamples[] = new ArrayList<double[]>[] {
new ArrayList<double[]>(), new ArrayList<double[]>(), new ArrayList<double[]>()
};
我做错了什么?
【问题讨论】:
-
是的,它编译并运行正常,但是编译器输出给定的警告。
-
您不能创建参数化类型的数组。查看此帖子stackoverflow.com/q/18581002/1679863 以获得进一步解释。
-
一个
ArrayList,采用double类型,被多个ArrayList类型初始化? -
@RohitJain 虽然他的 sn-p 中没有这样做。
-
您的数组创建表达式未参数化,它是原始的,这就是您收到警告的原因。