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不查找時切實修改陣列。