【问题标题】:How to convert PyObject to java boolean type如何将 PyObject 转换为 java 布尔类型
【发布时间】:2012-03-12 08:40:47
【问题描述】:

我想将 org.python.core.PyObject 转换为 java.lang.Boolean。 类似于:

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

【问题讨论】:

  • 您的预期用途是什么?即你为什么需要这个
  • 我正在使用 Jython 从 java 类调用 python 方法。该方法返回 PyObject。即 boolean、integer、double 我希望能够将它们转换为相关的 java 类型

标签: java python casting boolean jython


【解决方案1】:

您应该使用 Python 标准对象接口 nonzero 方法:

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

(之所以称为“非零”,是因为它在 Python 有布尔类型之前就已经存在,而且 Guido 的方式有时很神秘)

【讨论】:

    【解决方案2】:

    只需尝试以下操作:

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

    【讨论】:

    • 这个答案是否意味着 Jython 将 True 作为整数返回给 Java? String、Float、Double 等基本标量类型呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2011-06-03
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    相关资源
    最近更新 更多