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