gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 18:40:05 32 4
gpt4 key购买 nike

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

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

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

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)

关于java - 使用 py4j 将 python 列表转换为 java 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59951283/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com