如何在java类中扩展jython类
发布时间:2020-12-15 00:52:08 所属栏目:Java 来源:网络整理
导读:我想在 java类中扩展一个jython类 public class JavaClass extends JythonClass 如何导入Jython类?是否必须编译?文档链接已经很有用. 例: class JythonClass(threading.Thread):def do(self): print("hallo") – public class JavaClass extends JythonCl
我想在
java类中扩展一个jython类
public class JavaClass extends JythonClass 如何导入Jython类?是否必须编译?文档链接已经很有用. 例: class JythonClass(threading.Thread): def do(self): print("hallo") – public class JavaClass extends JythonClass { public void hello() { System.out.print("hallo")} } 解决方法
您可以使用Java扩展Jython类,以便通过创建扩展Java“子类”和Jython“超类”的Jython类在Jython中使用该结果.假设你有这个Jython类:
class JythonClass(object): def get_message(self): return 'hello' def print_message(self): print self.get_message() 您可以部分创建Java类,而无需扩展任何内容: public class JavaClass { private String message; public String get_message() { return message; } protected JavaClass(String message) { this.message = message; } } 然后在Jython中引起“扩展”关系: from javapackage import JavaClass as _JavaClass from jythonpackage import JythonClass class JavaClass(_JavaClass,JythonClass): pass 现在这将工作: obj = JavaClass('goodbye') obj.print_message() 如果您希望在Java中扩展Jython类,并像普通的Java类一样使用它,最简单的方法是使用组合而不是继承: >为Jython类上的方法创建Java接口>让你的Jython类扩展Java接口(通过直接修改你的Jython类代码,或者像我上面解释的那样)>创建Java子类作为实现接口,将Jython“superclass”的实例作为私有字段>您希望覆盖的Java子类中的任何方法,只需在私有Jython实例上调用该方法即可 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |