2013-02-14 20 views
7

Mam Java lib, z którego wyciągam dane.Java Array w Jruby

It out umieszcza tablicę 3D. Jednak nie mogę z tym nic zrobić.

[[D[]@5615a6e0 

to odpowiedź, którą otrzymuję. Próbowałem odwzorowanie go:

{ |arr| arr.map { |arr| arr.to_a } } 

ale ja się nic, co jest najlepszym sposobem, aby analizować to tablica java do ruby ​​użyciu?

+0

Co to jest podpis metody Java? Jeśli zwraca prostą tablicę, powinieneś być w stanie używać jej tak jak jest. To wygląda jak tablica tablic. –

+0

tak jest to tablica 3d, która zostanie zwrócona –

+0

Jestem zdezorientowany, co to jest problem; co próbujesz z tym zrobić, jak właściwie go używasz, itp.? AFAIK powinien to być szereg tablic (tablic, jeśli to naprawdę tablica 3D - sygnatura metody, o którą prosiłbym, byłaby miła wiadomość). –

Odpowiedz

9

Nie powinien to być problem. Wystarczy użyć to_a

kod Java:

package com.test.sof; 

public class MyTest { 
    public static int[] ReturnTestArray() { 
     int[] anArray = new int[3]; 
     anArray[0] = 1; 
     anArray[1] = 2; 
     anArray[2] = 3; 
     return anArray; 
    } 
} 

Code JRuby:

require 'java' 
java_import com.test.sof.MyTest 

java_array = MyTest.ReturnTestArray 
p java_array 
#=> int[1, 2, 3]@484c6b 

ruby_array = Array.new 
p ruby_array 
#=> [] 
ruby_array = java_array.to_a 

p ruby_array.size 
#=> 3 
p ruby_array.join(', ') 
#=> "1, 2, 3"