使用 py4j 将 python 列表转换为 java 数组

convert python list to java array using py4j

正如标题所说,我想将 python 中的字符串列表转换为 java 数组。之后,我会将 java 数组传递给采用可变参数的 java 方法。我使用 py4j。 在java中,我有这个方法:

public static void MyJavaMethod(String ...myStrings){
//my method instructions
}

而在 python 中,我唯一能做的就是将我的 python 列表转换为 JavaList,但问题是我们无法将 Javalist 传递给采用可变参数的方法(仅数组):

from py4j.java_collections import SetConverter, MapConverter, ListConverter
from py4j.java_gateway import JavaGateway
mypythonlist=['string1', 'string2']
gateway = JavaGateway()
java_list = ListConverter().convert(mypythonlist, gateway._gateway_client)
# MyJavaArray=???
gateway.entry_point.MyJavaMethod(MyJavaArray)

所以,我需要知道如何使用 py4j 将 python 列表转换为 java 数组。在 java 中,我们可以使用 .toArray() 执行它,但我不知道如何从 python 执行它。

我从 github 中找到了解决我问题的方法:

from py4j.java_collections import SetConverter, MapConverter, ListConverter
from py4j.java_gateway import JavaGateway
gateway = JavaGateway()
mypythonlist=['string1', 'string2']
object_class = gateway.jvm.java.lang.String
MyJavaArray = gateway.new_array(object_class, len(mypythonlist))
for i in range(len(mypythonlist)):
    my_array[i]=mypythonlist[i]
gateway.entry_point.MyJavaMethod(MyJavaArray)