我正在实现一个接口,其功能类似于可以包含一种对象类型的表。该接口指定以下功能:
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[],会对性能产生任何影响吗?