基本上 , 必须进行每个值的转换。两种数组类型之间没有隐式转换,因为在JITting之后用于处理它们的代码将有所不同-
它们具有不同的元素大小,而float则需要转换,而double则不需要。将此与引用类型的数组协方差进行比较,在引用类型中,读取数据时无需进行转换(例如,字符串引用作为对象引用的位模式相同),并且所有引用类型的元素大小均相同。
简而言之, 有些东西
必须循环执行转换。我不知道有任何内置方法可以做到这一点。我确定它们存在于第三方库中的某个地方,但是除非您碰巧已经在使用这些库之一,否则我只会编写您自己的方法。为了方便起见,下面是一个示例实现:
public static double[] convertFloatsToDoubles(float[] input){ if (input == null) { return null; // Or throw an exception - your choice } double[] output = new double[input.length]; for (int i = 0; i < input.length; i++) { output[i] = input[i]; } return output;}


