JPype: как преобразовать логическое значение из Python в Java

Я хочу запустить Java-класс в моем коде Python, и я использую инструмент 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? благодарю вас!!

1 ответ

Аргумент вашего метода Java определен как boolean или java.lang.Boolean?

Если это boolean, тогда все возможности, которые вы попробовали, должны работать (если нет, то может быть что-то не так с тем, как вы импортируете Class в своем коде Python). Однако, если это java.lang.Booleanтогда вы должны вызвать свой метод как таковой:

item.myMethod(jpype.java.lang.Boolean(True))
Другие вопросы по тегам