Tôi đang triển khai giao diện có chức năng tương tự như bảng có thể chứa một loại đối tượng. Giao diện quy định cụ thể chức năng sau:Làm cách nào để chuyển đổi Double [] thành double []?
double[] getDoubles(int columnIndex);
Nơi tôi đang bối rối là trong việc thực hiện của tôi, tôi lưu trữ các dữ liệu bảng trong một mảng 2D Object
(Object[][] data
). Khi tôi cần phải trả lại các giá trị, tôi muốn làm như sau (người ta cho rằng getDoubles()
sẽ chỉ được gọi là trên một cột có chứa gấp đôi, vì vậy sẽ không có ClassCastExceptions
):
double[] getDoubles(int columnIndex) {
return (double[]) data[columnIndex];
}
Nhưng - Java doesn Không cho phép Object[]
được truyền tới double[]
. Truyền nó tới Double[]
là ok vì Double
là một đối tượng chứ không phải nguyên thủy, nhưng giao diện của tôi chỉ định rằng dữ liệu sẽ được trả lại dưới dạng double[]
.
Vì vậy, tôi có hai câu hỏi:
- Có cách nào tôi có thể lấy dữ liệu cột ra khỏi bảng
Object[][]
và trả lại hàng loạt các nguyên thủy? - Nếu tôi thay đổi giao diện để trả về
Double[]
, sẽ có bất kỳ tác động hiệu suất nào không?
Tại sao bạn cần có dữ liệu là Object [] []? – notnoop
Bảng có thể lưu trữ bất kỳ loại dữ liệu nào: chuỗi, gấp đôi, số nguyên, các loại khác, v.v. – Brian
Sau đó, làm thế nào bạn có thể đảm bảo rằng mảng tại cộtIndex chỉ chứa Doubles/double? – notnoop