2014-12-10 15 views
2

자이 썬 문서 here의 모든 예제는 필요로 예를 들어 파이썬 클래스 가져 오기 대응하는 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 
     ... 

나는 것 내 자바 코드에 오히려하지 몇 내 파이썬 코드. Java 인터페이스를 가리 키도록 수정하지 않고 Java에서 Python 클래스를 인스턴스화 할 수있는 방법이 있습니까?

답변

0

내가 지금까지 생각해 낼 수 있었던 가장 좋은 대답은 인스턴스화하려는 각 파이썬 클래스 주위에 Java 래퍼를 구현하는 것이었다. 각 Java 래퍼는 PyObject를 보유하지만 필드에 정적으로 형식화 된 액세스를 제공합니다 (예 :

public class PeanutWrapper{ 
    private PyObject pyObj; 

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

    ... 
} 

효과는 있지만, 내가보기를 희망하는만큼 우아한 해결책은 아닙니다.