Проблема в том, что вы вызываете беспараметрическую перегрузку toArray()
, которая возвращает Object[]
.Вы не можете присвоить Object[]
переменной Object[][]
.
Теперь мне кажется, что вы, возможно, на самом деле хотите сделать sqlQuery
Object[][][]
вместоObject[][]
, так что вы получаете один двумерный массив на каждую запись в наборе результатов.Тогда вы получите:
// Please use this form rather than putting the brackets after the name
// - it keeps all the type information together.
Object[][][] sqlQuery = null; // No point giving it a dummy value
List<Object[][]> list = new ArrayList<Object[][]>();
...
sqlQuery = list.toArray(new Object[0][][]);
Однако я бы настоятельно посоветовал бы вам не идти по этому пути в любом случае - инкапсулировать концепцию "результата", которая в настоящее время просто Object[][]
в новом типе, поэтому у вас будет:
Result[] sqlQuery = null;
List<Result> list = new ArrayList<Result>();
...
sqlQuery = list.toArray(new Result[0]);
Это будет лот , о котором легче рассуждать - даже если Result
содержит только Object[][]
.