Wdrażam interfejs, który ma funkcjonalność podobną do tabeli, która może zawierać typy obiektów. Interfejs określa następującą funkcję:Jak przekonwertować Double [], aby podwoić []?
double[] getDoubles(int columnIndex);
Gdzie jestem zakłopotany, że w mojej realizacji, ja przechowywania danych w tabeli 2D Object
tablicy (Object[][] data
). Kiedy muszę przywrócić wartości, chcę wykonać następujące czynności (zakłada się, że getDoubles()
zostanie wywołana tylko na kolumnie zawierającej podwójne, więc nie będzie żadnego ClassCastExceptions
):
double[] getDoubles(int columnIndex) {
return (double[]) data[columnIndex];
}
Ale - Java nie robi Pozwól, aby Object[]
zostało przesłane do double[]
. Przesyłanie go do Double[]
jest ok, ponieważ Double
jest obiektem, a nie prymitywem, ale mój interfejs określa, że dane zostaną zwrócone jako double[]
.
Mam więc dwa pytania:
- Czy jest jakiś sposób mogę uzyskać dane z kolumn tabeli
Object[][]
i zwróci tablicę prymitywów? - Jeśli zmienię interfejs w celu zwrócenia
Double[]
, czy wystąpi jakikolwiek wpływ na wydajność?
Dlaczego potrzebujesz danych jako Object [] []? – notnoop
W tabeli można przechowywać wszelkiego rodzaju dane: ciągi, duble, liczby całkowite, inne typy itp. – Brian
W takim razie, w jaki sposób można zagwarantować, że tablica w columnIndex zawiera tylko podwójne/podwójne? – notnoop