HI,
假设我有一个Java接口B,就像这样。 B.java:
public interface B { String FooBar(String s); }
我希望将它用于Python类D女巫继承B,就像这样。 D.py:
class D(B):
def FooBar(s)
return s + 'e'
那么现在如何在java中获取D的实例?对不起我问这样一个n00b问题,但是Jython doc很糟糕/部分脱机。
答案 0 :(得分:3)
上面示例的代码。您还需要更改FooBar实现以获取自身参数,因为它不是静态方法。
您需要在类路径上使用jython.jar来编译和运行此示例。
import org.python.core.PyObject;
import org.python.core.PyString;
import org.python.util.PythonInterpreter;
public class Main {
public static B create()
{
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("from D import D");
PyObject DClass = interpreter.get("D");
PyObject DObject = DClass.__call__();
return (B)DObject.__tojava__(B.class);
}
public static void main(String[] args)
{
B b = create();
System.out.println(b.FooBar("Wall-"));
}
}
有关详情,请参阅Jython and Java integration
中有关Jython Book的章节