使用java.lang.reflect.Array.newInstance使用Java反射创建二维数组

时间:2014-11-05 13:14:25

标签: java javascript reflection

我需要使用JavaScript代码中的反射方法创建类型为java.lang.String的二维数组,该代码在java应用程序内部运行(在rhino脚本引擎内部)。此数组将是函数调用后从JavaCode使用的(javaScript函数的)返回值。

function test() {
    var a = java.lang.reflect.Array.newInstance(?, ?);
    // fill the array
    return a;
}

我无法找到newInstance调用的正确参数来创建String类型的两个diemnsional数组。

目前我正在使用一种解决方法,即我创建一个大小为x的java.lang.Object类型的(外部)数组,并在x-length循环内创建多个类型为java.lang.String的数组每个大小为y的,分配给''外部'数组元素。

有更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

您所要做的就是填写课程和维度:

var a = java.lang.reflect.Array.newInstance(String.class, x, y);

newInstance(Class<?> componentType, int... dimensions)的javadoc中阅读更多内容。