我正在实现一个接口,其功能类似于可以包含对象类型的表.接口指定以下功能:
double[] getDoubles(int columnIndex);
Run Code Online (Sandbox Code Playgroud)
我感到难过的是,在我的实现中,我将表数据存储在2D Object数组(Object[][] data)中.当我需要返回值时,我想要执行以下操作(假设getDoubles()只会在包含双精度的列上调用,因此将不会ClassCastExceptions):
double[] getDoubles(int columnIndex) {
return (double[]) data[columnIndex];
}
Run Code Online (Sandbox Code Playgroud)
但是 - Java不允许Object[]强制转换为double[].将它转换Double[]为正常是因为它Double是一个对象而不是一个原语,但我的接口指定数据将作为一个返回double[].
所以我有两个问题:
Object[][]表中获取列数据并返回原语数组吗?Double[],是否会对性能产生影响?