我有一个要求,我需要使用 JNI 将一些值从 C++ 传递到 JAVA。根据要求,c++ 代码的输入是一条带有点列表的线,我必须读取每个点的 x 和 y 坐标并返回到 java 代码。我已将列表声明为 std::list> listofpoints; 并读取 x 和 y 坐标为
for(size_t j = 0; j < track->geometry.points.size(); ++j)
{
PointZ &p = track->geometry.points[j] listofpoints.push_back(std::pair<double, double>(p.vertex.position.x,p.vertex.position.y));
Run Code Online (Sandbox Code Playgroud)
这个 geometry.points 是读取每个点,获取 x 和 y 坐标。现在我将此 listofpoints 返回给 JNI 方法。在这里我必须编写代码,以便它读取 x 和 y 坐标并将其发送到 JAVA 方法。我正在寻找一种迭代列表并获取值的方法,但是,我发现很难从 JNI 返回到 JAVA,因为 JNI 仅返回 jobjectarray。如何将此列表转换为 JNI 中的数组并发送到 JAVA 方法。我对 JNI 和 JAVA 也很陌生。