将Java类封装到Python中的最佳方法

2024-09-30 05:24:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Java库,我必须为它构建一个Python包装器。在

我使用的是py4j,很容易获得任何实例和任何类,并使用方法完成。在

问题是对象的类型与它的类不对应。在

来自python:

>>> gw = JavaGateway()
>>> a_circle = gw.jvm.com.geometry.Circle(15)
>>> a_circle.getDiameter()
30
>>> type(a_circle)
<class 'py4j.java_gateway.JavaObject'>

对于基本用法来说,这几乎是可以的,但是如果我想创建自定义构造函数呢?我应该将JavaObject类的子类化吗?或者最好从头开始创建类,并为每个方法和构造函数调用相应的Java方法?在

有什么好的方法来实现它吗?我应该试试py4j以外的东西吗? 谢谢您!在

编辑:例如,我必须包装一个有3个方法的Java类,其中一个方法以数组作为参数,所以我必须注入一些代码来进行转换。在

^{pr2}$

这很管用,但我只是在必要的时候才这么做。如果这个类只是直接工作,我不会写任何东西来包装它。在


Tags: 对象实例方法com类型jvmjavagw

热门问题