加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在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实例上调用该方法即可

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读