无法将数组Object强制转换为double []

时间:2013-10-21 14:43:48

标签: java casting

我读了一个int数组不能转换为double []:Casting Don't Work int[] to double[], 17 Oct

的地方

我遇到了类似的障碍,试图将双精度数组转换为double []。我怀疑这是同一个问题。

我想更好地理解这个限制。这是对所有集合的一般限制,还是仅限于数组?是否存在限制的根本原因,或者只是需要解决的问题?

我有一个类,它创建一个表示输入信号的双精度数组。我将该类的实例传递给一个类来计算信号的FFT。我正在使用的FFT类需要一个double []参数。由于我将输入数组创建为double [],我似乎应该能够将其转换为。[/ p>

2 个答案:

答案 0 :(得分:1)

  

尝试将双精度数组转换为double []

Java中没有“数组双打对象”这样的东西。 double[],Double[],Object[]元素为Doubles.

如果底层类型确实是Double[],,则可以在最后两个方向之间进行投射,但不能在第一个和其他任何一个之间投射。

答案 1 :(得分:0)

这里解释了问题Why covariance and contravariance do not support value type。协方差和逆变不适用于值类型。但是,您可以使用linq强制执行强制转换。