2012-02-22 3 views
2

Я хотел бы бросить org.python.core.PyObject в java.lang.Boolean. Нечто подобное:Как преобразовать PyObject в java boolean типа

boolean i = ((Boolean) PyObject).booleanValue(); 
+0

Каково ваше намерение использования? Зачем вам это нужно – paislee

+0

Я использую Jython для вызова метода python из класса java. Этот метод возвращает PyObject. то есть boolean, integer, double Я хотел бы иметь возможность преобразовывать их в соответствующие типы java – Hasti

ответ

2

Просто попробуйте следующее:

PyObject obj = interpreter.eval("True"); 
boolean i = ((PyInteger) obj).asInt() != 0; 
+0

Означает ли этот ответ, что Jython возвращает True как целое число обратно в Java? Что относительно String, Float, Double и других базовых скалярных типов? – chrisinmtown

0

Вы должны использовать стандартный интерфейс объекта Python ненулевая метод:

PyObject obj = interpreter.eval("True"); 
boolean i = obj.__nonzero__(); 

(это называется "ненулевой" потому что он существовал до того, как у Python был булев тип, а способы Guido иногда таинственны)

Смежные вопросы