我正在实现一个类似于可以包含各种对象类型的表格的接口。该接口指定了以下功能:
double[] getDoubles(int columnIndex);
我困惑的地方在于,我的实现中将表格数据存储在一个2D Object
数组(Object[][] data
)中。当需要返回这些值时,我希望按照以下方式进行操作(假设getDoubles()
仅会在包含双精度值的列上调用,因此不会出现ClassCastExceptions
):
double[] getDoubles(int columnIndex) {
return (double[]) data[columnIndex];
}
但是Java不允许将Object[]
强制转换为double[]
。将其转换为Double[]
是可以的,因为Double
是一个对象而不是原始类型,但我的接口规定数据将作为double[]
返回。
所以我有两个问题:
- 是否有任何方法可以从
Object[][]
表中获取列数据并返回原始数组? - 如果我更改接口以返回
Double[]
,是否会对性能产生影响?