java - 如何在 Jython 解释器中将 Python 类转换为 Java 类?

标签 java python jython esper

我正在尝试使用 Esper API 注册一个用户定义的函数。它需要一个类或字符串类型的争论

http://esper.codehaus.org/esper-4.0.0/doc/api/com/espertech/esper/client/ConfigurationOperations.html#addImport(java.lang.String )

class MyUdf():
    @staticmethod
    def udf():
        return 50

conf.addImport(myudf.getClass().getName())

错误信息

AttributeError: class MyUdf has no attribute 'getClass'

我可以导入java类

from java.lang import Math
conf.addImport(Math)

@larsmans:class 似乎只存在于 Java Class 类中

class MyUdf(): 
    @staticmethod 
    def udf(): 
        return 50 

def main(): 
    a = 'abc' 
    print a.__class__ 
    u = MyUdf 
    print u.__class__ 


Traceback (most recent call last): 

line 79, in main print u.__class__ AttributeError: class MyUdf has no attribute '__class__' 

最佳答案

我认为这是不可能的。 Jython 类不是 Java 类,据我所知,没有纯 jython 机制来强制它。

一般来说,我会说你应该采用对象工厂方法 mentioned in the Jython book ,并结合一个代理类,这是您作为参数传递的内容。

但是,该方法涉及编写大量 Java,在您的情况下,似乎只用 Java 编写 MyUdf 类并完成它会更简单。

或者,您可以使用动态字节码生成来做一些事情,但那是一个全新的兔子洞......

关于java - 如何在 Jython 解释器中将 Python 类转换为 Java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3850493/

相关文章:

java - 如何在 Android 上录制音频并改变音调?

带套接字的 Java 单实例软件。 windows下关闭socket的问题

python - Python 是否优化了仅用作返回值的变量?

java - 如何从 Jython 调用由 Java 类执行的 Java 方法?

java - 在不同的 Activity 中使用 Nav Drawer 设置

java - 在 hibernate @Formula中使用自定义方言功能

python - jquery跨域ajax请求总是报错

python - 为什么字典有key的时候会出现KeyError?

java - loadComponentFromURL 摔倒身亡,如何进行心肺复苏?

java - 如何从 Python 与 Java 交互