2014-07-31 5 views
0

У меня есть кусок кода, который возвращает массив объектов. Каждый срез массива затем содержит данные, изначально представляющие собой двумерный массив двойников. Я не могу изменить этот кусок кода, поскольку он является частью Matlab (см. Ссылку ниже).java convert Объект для двойного массива

http://www.mathworks.com/help/mps/java/code-multiple-outputs-for-java-client.html

Мой вопрос заключается в том, как преобразовать каждый ломтик Object [] обратно в двойной [] [] в Java?

Вот некоторые примеры кода

Object[] test = getDailyLog(1,20050101,20060101); 
Object a = test[1]; 
System.out.println(a); 

От этого я получаю выход

[[[email protected] 
+0

Что такое возвращение типа getDailyLog? –

+0

Непонятно из вашего описания, какие объекты фактически находятся в массиве. Вам нужно изменить фрагмент кода выше, чтобы сделать 'System.out.println (a.getClass(). GetName());', чтобы показать класс объектов. Затем можно выяснить, как извлечь значения. –

+1

(Но префикс '[[' pre предполагает, что у вас есть двумерный массив, и * возможно * 'D' означает' double' (прошло много времени с тех пор, как я посмотрел по умолчанию 'toString' для массива).) –

ответ

1

Из вашего описания, можно сделать вывод, что «тест» представляет собой массив «двойной [] [] ». Таким образом, вы могли бы использовать приводки бросок, чтобы выполнить ваше требование, например, перечислены ниже:

 Object[] test = getDailyLog(1,20050101,20060101); 

     double[][] d2d; 
     for(Object obj : test) { 
      d2d = (double[][]) obj; 
     } 
+0

Конечно, это будет извлекать все элементы в один массив, записывая один поверх следующего. Вам действительно нужно извлечь в 3-мерный массив. –

+0

Вернее, это относится к каждому элементу с использованием той же ссылки. –

+0

Я изменил его так, чтобы каждый объект получил свою собственную переменную двойного массива. Благодаря! – jhlu87

Смежные вопросы