如何在java类中扩展jython类

前端之家收集整理的这篇文章主要介绍了如何在java类中扩展jython类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在 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实例上调用方法即可

原文链接:https://www.f2er.com/java/129921.html

猜你在找的Java相关文章