我有一个Java库,正在提取一些数据。

它放出一个3D阵列。但是我对此无能为力。

[[D[]@5615a6e0

是我得到的回应。我尝试映射它:
{ |arr| arr.map { |arr| arr.to_a } }

但我什么也没搞清楚,解析此java数组供ruby使用的最佳方法是什么?

最佳答案

应该没问题。只需使用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"

关于java - Jruby中的Java数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14877934/

10-10 08:14