[英]My Python-Java Interface, good design? And how to wrap JNI Functions?
我要编写自己的Python-Java接口。 它被编译为DLL并使用ctypes进行包装。
然而,可以找到Java类并分配Java对象。 但是如果不使用这些对象方法,那么另一种语言的接口是什么? 我的目标是让它尽可能自然。 不幸的是,它不只是能够仅通过名称查找Java的方法。
我的模型如下:
JCLASS
JObject
JMethod
表示Java对象的方法。 它包含所需方法的名称和签名。 签名由初始化时给出的类动态评估。
例:
mainMethod = JMethod('main', JStringArray)
请注意, JStringArray
是表示字符串数组的JClass实例。
可以将JMethod添加到JClass实例。 但是只能从实例化的JObject中调用。
JStaticMethod
内置类型
我正在做JInt
, JShort
, JLont
, JChar
等。作为内置的包装器类型。
喜欢:
JInt = JClass('java/lang/Integer') JShort = JClass('java/lang/Short') JString = JClass('java/lang/String')
问题 :
va_list
或其他东西吗? 我只需要找到一些方法从Java中调用Python的方法! 1.我对这个设计有什么看法?
目前还不清楚你要解决的实际问题是什么。
边缘情况怎么样; 错误处理; 正向/后向兼容性; Python / Java中的错误? 没有趣,但对于强大的软件至关重要。
混合两种语言是很难的,混合三种肯定会更糟糕。 我期望主要的可维护性和耦合问题。
已经有解决这些问题的方法。 RPC,用于使用不同语言的程序相互通信。 Jython,用于Java / Python互操作性。 我相信,Jython甚至允许您直接在Java中创建Python对象,反之亦然。 澄清这些现有系统的任何缺点,以及如何解决这些缺点,将会有所帮助。
这里有一些遗漏的东西:
2.我只需要找到一些方法来用Java调用Python中的方法! 那么Jython,RPC还是只调用可执行文件呢?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.