4

我有一个 Python XML-RPC 服务器,它有一个返回元组的函数,例如:

def function_name(first_parameter, second_parameter)
    #do something
    return (x,y)

我在使用aXMLRPC的 Android 应用程序中从 Java 调用此函数,代码为:

Object id = client.call("function_name", first_parameter, second_parameter);

如何从 Object id 中提取函数的两个返回值?

4

3 回答 3

1

您用来与 Python 服务对话的 XML-RPC 库的文档说只有有限数量的可能返回类型;如果不尝试,我不确定,但显然你的 Tuple 会以数组或Map<String, Object>. 您将不得不进行一些实验,但应该不会太糟糕。尝试这样的事情:

Object id = client.call("function_name", first_parameter, second_parameter);
System.out.println(id.getClass().getName());

找出您正在处理的内容,然后一旦您知道,您就可以相应地编写真正的代码。最有可能的是,id结果是一个Object[2]包含这两个值的。

于 2013-09-30T03:14:09.400 回答
0

我相信如果你使用这个库,你可以将你的 Object id 转换成一个 Tuple,然后使用里面的方法来解析

于 2013-09-29T13:11:41.187 回答
0

您想要实现的是在结果中解包值Object。您可以编写一个返回 a 的方法Object[]

public static Object[] unpack(Object array) 
{
    Object[] array2 = new Object[Array.getLength(array)];

    for(int i=0;i<array2.length;i++)
        array2[i] = Array.get(array, i);

    return array2;
}

这个线程似乎相关

于 2013-09-30T05:57:19.690 回答