有没有办法使用 Jython *无需*使该 Python 类扩展 Java 接口



这里Jython文档中的所有示例都要求Python类导入相应的Java接口,例如:

# A python module that implements a Java interface to
# create a building object
from org.jython.book.interfaces import BuildingType
class Building(BuildingType):
    def __init__(self, name, address, id):
        self.name = name
        self.address = address
        self.id = id
        ...

我宁愿不将我的Python代码与Java代码耦合。有没有办法我可以从 Java 实例化 Python 类,而无需将其修改为指向 Java 接口?

到目前为止,我能想出的最好的答案是围绕我想要实例化的每个 Python 类实现 Java 包装器。每个 Java 包装器都包含一个 PyObject,但提供对其字段的静态类型访问,例如

public class PeanutWrapper{
  private PyObject pyObj;
  public String getKind(){
    return pyObj.__findattr__("kind");
  }
  ...
}

它有效,但它并不像我希望找到的那样优雅。

相关内容

  • 没有找到相关文章

最新更新