如果我有这样的事情:
package utils;
public class RUsingStringArray {
public void useArray(String [] array) {
for(int i=0; i<array.length; i++ ) {
String str = array[i];
}
}
public int arrayLen(String [] array) {
System.out.println("Class: " + array.getClass());
return array.length;
}
public String [] createArray() {
return new String[0];
}
public static void main(String [] arg) {
RUsingStringArray obj = new RUsingStringArray();
obj.useArray(obj.createArray());
System.out.println("Len: " + obj.arrayLen(new String[0]) );
}
}
方法,createArray 会返回
> obj <- .jnew("utils.RUsingStringArray")
> s <- .jcall(obj, returnSig="[Ljava/lang/String;", method="createArray")
> s
character(0)
你可以稍后将其用作空字符串 []
.jcall(obj, returnSig="V", method = "useArray", s)
当然,这个也可以
> b <- character(0)
> .jcall(obj, returnSig="V", method = "useArray", b)
问题是,这是否是您正在寻找的东西。
更新:
在那种情况下,也许这对你来说更好?
> array <- .jarray(list(NULL), "java/lang/String")
> .jcall(obj, returnSig="V", method="useArray", array)
更新2:
这个怎么样;)
> array2 <- .jarray(character(0), "java/lang/String")
> .jcall(obj, returnSig="I", method="arrayLen", array2)
Class: class [Ljava.lang.String;
[1] 0
>