包括JCC modu中的系统类

2024-06-10 20:36:34 发布

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

我有一个java类Prime,我已经用jcc用以下命令成功地将它“编译”成一个python模块:

sudo python -m jcc --jar ../workspace/prime.jar --python prime --build --install

Prime.factorLists返回一个多维数组;当我从python调用它时,我得到一个Jarray,但是它充满了Object,我很难将其作为数组来处理:

>>> Prime.factorLists(3)
JArray<object>[<Object: [I@7bd63e39>, <Object: [I@2e8f4fb3>, <Object: [I@42b988a6>, <Object: [I@22ba6c83>]

其他返回一维数组的方法do有效:

Prime.generatePrimes(200,1)
JArray<int>[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]

我想使用java.util.Arrays.toString将类似于Objects的数组转换为字符串并打印出来,但我不知道如何将其打包到python模块中。或者,我可以将它们转换为python列表或JArray吗?你知道吗


Tags: 模块install命令buildobjectsudo数组java
1条回答
网友
1楼 · 发布于 2024-06-10 20:36:34

要将Object转换为JArray_int,请使用JArray_int.cast_方法:

>>> jarr_class=some_method_that_returns_an_array_of_ints_in_java.__class__
>>> factor_lists=[jarr_class.cast_(i) for i in Prime.factorLists(10)]
>>> factor_lists
[JArray<int>[], JArray<int>[], JArray<int>[2], JArray<int>[3], JArray<int>[2, 2], JArray<int>[5], JArray<int>[2, 3], JArray<int>[7], JArray<int>[2, 2, 2], JArray<int>[3, 3], JArray<int>[2, 5]]

相关问题 更多 >