0
我在java中有一个2d矩阵说在方法java_method()中的MyClass.java文件中,并且我声明了一个本地方法说c_method()。该矩阵是浮动类型,如:通过jni传递一个2d矩阵从java到C++文件
float[][] pos_matrix;
大小3by4和我已经初始化java中的矩阵。现在我想将这个矩阵传递给jni中的cpp文件。怎么做?
我在java中有一个2d矩阵说在方法java_method()中的MyClass.java文件中,并且我声明了一个本地方法说c_method()。该矩阵是浮动类型,如:通过jni传递一个2d矩阵从java到C++文件
float[][] pos_matrix;
大小3by4和我已经初始化java中的矩阵。现在我想将这个矩阵传递给jni中的cpp文件。怎么做?
两个选项:
jfloatArray
。不能直接使用,请阅读Get/ReleaseFloatArrayElements
jobject
)将Java矩阵包装到外观类中,方法为float GetValueAt(int,int)
(或类似方法),然后在本机端访问,然后调用该方法(GetMethodID/CallFloatMethod)选项1更简单(少编码),选项2在“OO方式”中更清晰 - 关注点分离。使用选项1时,您可以在JVM不查找时切实修改阵列。