2013-02-06 30 views
0

我在java中有一個2d矩陣說在方法java_method()中的MyClass.java文件中,並且我聲明瞭一個本地方法說c_method()。該矩陣是浮動類型,如:通過jni傳遞一個2d矩陣從java到C++文件

float[][] pos_matrix; 

大小3by4和我已經初始化java中的矩陣。現在我想將這個矩陣傳遞給jni中的cpp文件。怎麼做?

回答

0

兩個選項:

  1. 編碼長度爲12的一維數組的矩陣,通過浮法[]。結果在本機端jfloatArray。不能直接使用,請閱讀Get/ReleaseFloatArrayElements
  2. 通過傳遞實例(在本機端產生jobject)將Java矩陣包裝到外觀類中,方法爲float GetValueAt(int,int)(或類似方法),然後在本機端訪問,然後調用該方法(GetMethodID/CallFloatMethod)

選項1更簡單(少編碼),選項2在「OO方式」中更清晰 - 關注點分離。使用選項1時,您可以在JVM不查找時切實修改陣列。

相關問題