Jruby中的Java数组

Jruby中的Java数组,java,ruby,jruby,Java,Ruby,Jruby,我有一个Java库,我正在从中提取一些数据 它输出一个3D阵列。然而,我对此无能为力 [[D[]@5615a6e0 这是我得到的回应。我已尝试映射它: { |arr| arr.map { |arr| arr.to_a } } 但是我什么也没有得到,解析这个java数组以供ruby使用的最佳方法是什么?应该不是问题。只需使用即可添加 Java代码: package com.test.sof; public class MyTest { public static int[] Retu

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

它输出一个3D阵列。然而,我对此无能为力

[[D[]@5615a6e0
这是我得到的回应。我已尝试映射它:

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

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

应该不是问题。只需使用
即可添加

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方法的签名是什么?如果它返回一个简单数组,您应该能够按原样使用它。这看起来像一个数组。是的,这是一个返回的3d数组。我不知道问题出在哪里;你想用它做什么,你实际上是如何使用它的,等等?好吧,它应该是一个数组的数组(数组的数组,如果它真的是一个3D数组的话——我要求的方法签名真的很想知道)。任何类型的puts数组都会返回[[[D]而不是数据。映射会起作用吗?如果你只是
puts
一个数组,你就会得到类型签名——它不会神奇地为你格式化任何东西。如果你想要它作为JSON,就把它转换成JSON。