0

我想在我的 python 代码中运行 java 类,我使用工具 JPype。我有一个带有布尔参数的 java 方法。它在 java 代码中工作,但是当我在 python 中调用它时,我收到错误消息:

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?谢谢你!!

4

1 回答 1

1

您的 Java 方法的参数是否定义为 aboolean或 a java.lang.Boolean

如果是boolean,那么您尝试过的所有可能性都应该有效(如果不是,您在 Python 代码中导入类的方式可能有问题)。但是,如果它是java.lang.Boolean,那么您必须这样调用您的方法:

item.myMethod(jpype.java.lang.Boolean(True))
于 2013-07-22T10:11:04.123 回答