7

我有一个 Java 库,我从中提取了一些数据。

它输出了一个 3D 数组。但是我不能用它做任何事情。

[[D[]@5615a6e0

是我得到的回应。我试过映射它:

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

但我什么也没说,解析这个java数组以供ruby使用的最佳方法是什么?

4

1 回答 1

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"
于 2013-02-14T22:31:50.803 回答