2013-07-15 43 views
0

我想在我的python代碼中運行java類,並使用工具JPype。 我有一個帶有布爾參數的java方法。 它可以在Java代碼,但是當我把它在Python中,我得到錯誤信息:JPype:如何將布爾值從python轉換爲java

RuntimeError: No matching overloads found. at src/native/common/jp_method.cpp:121 

我甚至用jpype包裝JBoolean,但它仍然失敗。 例如,在Java代碼:

item.myMethod(true); 

,我試圖將其轉換在python爲:

item.myMethod(1) 
item.myMethod(True) 
item.myMethod(jpype.JBoolean(True)) 
item.myMethod(jpype.JBoolean(1)) 

但上述所有得到同樣的錯誤消息。 任何人都可以幫助我將從Python到布爾參數轉換爲Java? 謝謝!

回答

1

您的Java方法的參數定義爲booleanjava.lang.Boolean

如果它是boolean,那麼您嘗試過的所有可能性都應該有效(如果沒有,那麼您在Python代碼中導入類的方式可能有問題)。然而,如果它是一個java.lang.Boolean,那麼你必須打電話給你的方法:

item.myMethod(jpype.java.lang.Boolean(True))