如何解决有没有办法使用 Jpype 对接口进行类型转换?
我正在尝试使用 Jpype 从 Python 调用 Java 代码,并尝试使用 JProxy 实现接口进行回调。 如果我尝试强制转换它,则会出现“TypeError:无法创建 Java 接口实例”的错误 例如
proxy = jpype.JProxy("PutCallback",dict=d,convert=False)
javaPackage.TestClient.put(jLang.String("Pi"),3,expiryType,jLang.String(" "),amazon.proxy)
但是如果我直接传递它会给出错误,因为我的方法在传递时没有找到方法期待 PuCallback 是 jproxy 对象
proxy = jpype.JProxy("PutResultCallback",convert=False)
javaPackage.TestClient.put(jLang.String("Pi"),proxy)```
javaPackage.TestClient.put("Pi"," ",proxy)
TypeError: No matching overloads found for
TestClient.put(java.lang.String,int,client.Dat
aExpiryType,java.lang.String,_jpype._JProxy),options are:
public void TestClient.put(java.lang.String,boolean,client.DataExpiryType,java.la
ng.String,client.PutResultCallback)```
解决方法
这将通过从 Dev 包中删除静态引用来实现,它会自动捕获代理对象。
无需将其类型转换为接口。
注意:如果您的方法是静态的,那么您将需要通过静态引用调用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。