我在 java_method() 方法中的文件 MyClass.java 中有一个 java 中的二维矩阵,我已经声明了一个本地方法说 c_method()。矩阵是浮点类型,如:
float[][] pos_matrix;
大小为 3by4,我已经在 java 中初始化了矩阵。现在我想将此矩阵传递给 jni 中的 cpp 文件。怎么做?
我在 java_method() 方法中的文件 MyClass.java 中有一个 java 中的二维矩阵,我已经声明了一个本地方法说 c_method()。矩阵是浮点类型,如:
float[][] pos_matrix;
大小为 3by4,我已经在 java 中初始化了矩阵。现在我想将此矩阵传递给 jni 中的 cpp 文件。怎么做?
两种选择:
jfloatArray
本机方面。不能直接使用,请阅读Get/ReleaseFloatArrayElements
float GetValueAt(int,int)
并通过传递实例(在本机端产生结果)jobject
在本机端访问,然后调用该方法(GetMethodID/CallFloatMethod)选项 1 更简单(编码更少),选项 2 在“OO 方式”中更简洁 - 关注点分离。使用选项 1,您实际上可以在 JVM 不查看时修改数组。