2014-12-10 20 views
2

所有的Jython的文檔here中的示例要求對Python的類導入對應的Java接口,例如:有沒有一種方法可以使用Jython *從Java實例化一個Python類,而不需要*使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接口?

回答

0

到目前爲止,我已經能夠提出的最佳答案是圍繞每個想要實例化的Python類實現Java包裝。每個Java包裝器都包含一個PyObject,但是爲其字段提供了靜態類型的訪問,例如,

public class PeanutWrapper{ 
    private PyObject pyObj; 

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

    ... 
} 

它的工作原理,但它並不像我希望找到的那樣優雅。

相關問題