2012-03-11 24 views
2

這聽起來像是一個新手問題,但我想知道通過從java傳遞到JNI C++的對象數組進行讀取和迭代的正確方法。如何讀取從Java傳入JNI的對象數組

有關示例,該對象具有的簽名:

public class Node{ 
    public String name; 
    public long uniqueId; 
    public int rank; 
} 

我通過10個節點對象的數組到本地方法:

nativeParse(nodes); 

我想通過對象迭代並從數據中創建新的C++對象,以便我的C++代碼可以使用它們。

任何幫助,將不勝感激!

回答

3

假設是newNodes[]是你的C++對象的數組,你可以嘗試這樣的事:

JNIEXPORT void JNICALL nativeParse(JNIEnv *env, jint size, jobjectArray nodes) 
    { 
    for(int i=0; i < size; i++) 
     newNodes[i]= (jobject) env->GetObjectArrayElement(nodes, i); 
    } 
+0

感謝您的答覆,但我如何訪問這些對象中的字段有關係嗎? – 2012-03-11 02:53:44

+0

看看這裏:http://stackoverflow.com/questions/2630529/jni-how-to-access-java-object-integer – Juvanis 2012-03-11 06:46:02

+0

謝謝!我知道了! – 2012-03-13 02:11:02