如何将Java List转换为py4j中的Python列表

时间:2018-05-13 11:13:35

标签: py4j

我想知道是否有可能,如果是的话,将通过Python中的Java网关接收的JavaList转换为python列表。或类似的东西python类型。

在py4j的文档中我只能看到将python类型转换为java但反之亦然。

3 个答案:

答案 0 :(得分:0)

接收到的Java列表会在接收它的python函数中自动转换为python列表。

答案 1 :(得分:0)

据我所知,PY4J会自动将它们(ArrayList)转换为python中的列表。

https://www.py4j.org/

使用包含加法的第一个示例,但不返回一个

int 

返回

ArrayList<String>

答案 2 :(得分:0)

如官方文档中advanced topics section所述,在调用Python代码中,数组,列表,集合,映射,迭代器类型的Java集合会自动转换为兼容格式。
请注意,java列表不会转换为纯Python列表,而是会转换为 @Override public void onResponse(Call<GetAllJsonDatum> call, Response<GetAllJsonDatum> **response**) {

让我们看一个演示此内容的示例:

JAVA代码:

py4j.java_collections.JavaList

Python代码,调用网关:

public class Py4JEntryPoint {

    private List<String> javaList = new ArrayList<>();
    public Py4JEntryPoint(){
        javaList.add("Hello");
        javaList.add("How");
        javaList.add("you");
        javaList.add("doin...!!!");
    }

    public List<String> getJavaList(){
        return javaList;
    }

    public static void main(String[] args) {
        GatewayServer gatewayServer = new GatewayServer(new Py4JEntryPoint());
        gatewayServer.start();
        System.out.println("Gateway Server Started");
    }
}