2013-02-14 61 views
7

我有一個Java庫,我正在將一些數據從中抽出。Jruby中的Java數組

它把一個3D數組。但我無法做任何事情。

[[D[]@5615a6e0 

是我得到的迴應。我試圖映射它:

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

但我沒有得到任何東西,什麼是解析這個Java數組的紅寶石使用最好的方法是什麼?

+0

什麼是Java方法的簽名?如果它返回一個簡單的數組,你應該可以直接使用它。這看起來像一個數組數組。 – 2013-02-14 15:16:51

+0

是它的一個3d數組,返回 – 2013-02-14 15:17:58

+0

我很困惑那是什麼問題;你想用它做什麼,你怎麼實際使用它等等? AFAIK它應該是一個數組數組(數組,如果它真的是一個3D數組 - 我要求的方法簽名真的很好知道)。 – 2013-02-14 15:26:48

回答

9

應該不是問題。只需使用to_a

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; 
    } 
} 

的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"