有没有办法使用 Jpype 对接口进行类型转换?

Is there a way to typecast interface using Jpype?

我正在尝试使用 Jpype 从 Python 调用 Java 代码,并尝试使用 JProxy 实现接口以进行回调。 如果我尝试投射它,就会出现“TypeError: Cannot create Java interface instances”错误 例如

proxy = jpype.JProxy("PutCallback", dict=d, convert=False) 
javaPackage.TestClient.put(jLang.String("Pi"), 3, expiryType, jLang.String(" "), amazon.proxy)

但是如果我直接传递它它会给出错误,因为我传递的方法是 jproxy 对象时我的方法期望 PuCallback 找不到方法

proxy = jpype.JProxy("PutResultCallback", dict=d, convert=False)
javaPackage.TestClient.put(jLang.String("Pi"), 3, expiryType, jLang.String(" "), proxy)```
  javaPackage.TestClient.put("Pi", 3, expiryType, " ", 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 包中删除静态引用来实现,它会自动捕获代理对象。

无需将其强制转换为接口。

注意:如果您的方法是静态的,那么您将需要通过静态引用来调用它。