我正在实现一个接口,其功能类似于可以包含一种对象类型的表。该接口指定以下功能:
double[] getDoubles(int columnIndex);
我感到困惑的是,在我的实现中,我将表数据存储在二维Object
数组 ( Object[][] data
) 中。当我需要返回值时,我想做以下事情(假设getDoubles()
只会在包含双精度的列上调用,所以不会有ClassCastExceptions
):
double[] getDoubles(int columnIndex) {
return (double[]) data[columnIndex];
}
但是 - Java 不允许Object[]
强制转换为double[]
. 将其转换Double[]
为可以,因为它Double
是一个对象而不是原语,但我的接口指定数据将作为double[]
.
所以我有两个问题:
- 有什么方法可以从
Object[][]
表中获取列数据并返回基元数组? - 如果我确实将接口更改为 return
Double[]
,会对性能产生任何影响吗?