有没有办法使用Jython *从Java实例化Python类而不使* Python类扩展Java接口?

时间:2014-12-10 23:23:01

标签: java python jython jython-2.5

Jython文档here中的所有示例都要求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接口?

1 个答案:

答案 0 :(得分:0)

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

public class PeanutWrapper{
  private PyObject pyObj;

  public String getKind(){
    return pyObj.__findattr__("kind");
  }

  ...
}

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