2012-02-22 60 views
2

我想將org.python.core.PyObject強制轉換爲java.lang.Boolean。 類似的東西來:如何將PyObject轉換爲java布爾類型

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

你的用途是什麼?即爲什麼你需要這個 – paislee 2012-02-22 01:03:54

+0

我正在使用Jython從java類調用python方法。該方法返回PyObject。即布爾,整數,雙我想能夠將它們轉換爲相關的java類型 – Hasti 2012-02-22 01:06:57

回答

2

只是嘗試以下操作:

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

這個答案是否意味着Jython返回True作爲返回到Java的整數?那麼String,Float,Double和其他基本標量類型呢? – chrisinmtown 2016-02-25 20:42:19

0

你應該使用Python標準對象接口非零方法:

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

(這就是所謂的 「非零」因爲它在Python有布爾類型之前就存在了,而Guido的方式有時是神祕的)

相關問題