Tuple, от Python до Java

У меня есть сервер XML-RPC Python, у которого есть функция, которая возвращает кортеж, например:

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

Я вызываю эту функцию из Java в приложении Android, используя aXMLRPC , код:

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

Как я могу извлечь два возвращаемых значения функции из идентификатора объекта?

    Документация для библиотеки XML-RPC, которую вы используете для связи с Python-службой, говорит о том, что существует только ограниченное число возможных типов возврата; Я не знаю точно, не пытаясь этого, но, очевидно, ваш Tuple вернется либо в виде массива, либо, возможно, в Map<String, Object> . Вам придется немного поэкспериментировать, но это не должно быть слишком плохо. Попробуйте что-то вроде этого:

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

    Чтобы узнать, с чем вы имеете дело, а затем, как только вы знаете, вы можете написать реальный код соответственно. Скорее всего, id окажется Object[2] содержащим два значения.

    Я полагаю, что если вы используете эту библиотеку, вы можете указать объект Object в кортеж, а затем использовать методы внутри для синтаксического анализа

    То, что вы хотите достичь, – это распаковка значений в Object результата. Вы можете написать метод, возвращающий 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; } 

    Эта тема кажется актуальной .