2013-07-15 94 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)) 
相关问题