Я реализую интерфейс, который имеет функциональность, похожую на таблицу, которая может содержать типы объектов. Интерфейс определяет следующую функцию:
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[]
, будет ли какое-либо влияние на производительность?