I'm implementing an interface that has functionality similar to a table that can contain an types of objects. The interface specifies the following function:
double[] getDoubles(int columnIndex);
Where I'm stumped is that in my implementation, I'm storing the table data in a 2D Object
array (Object[][] data
). When I need to return the values, I want to do the following (it is assumed that getDoubles()
will only be called on a column that contains doubles, so there will be no ClassCastExceptions
):
double[] getDoubles(int columnIndex) {
return (double[]) data[columnIndex];
}
But - Java doesn't allow Object[]
to be cast to double[]
. Casting it to Double[]
is ok because Double
is an object and not a primitive, but my interface specifies that data will be returned as a double[]
.
So I have two questions:
- Is there any way I can get the column data out of the
Object[][]
table and return the array of primitives? - If I do change the interface to return
Double[]
, will there be any performance impact?