如何使用jobject数组?(JNI)

Jsn*_*dnl 11 java java-native-interface parsing object

实际上,我称之为c ++函数:

JNIEXPORT void JNICALL Java_test_main_JniFunctions_testObject(JNIEnv*env,jobject obj,jobjectArray objArray){....}

我想做的是取回原始对象的值.考虑此对象的java代码声明:

jniFct.testObject(new Object[][]
        {   
            {"testTable"},
            {0, 0.0, "aaa"},
            {1, 1.1, "bbb"},
            {2, 2.2, "ccc"}
        });
Run Code Online (Sandbox Code Playgroud)

例如,从第二列的第三行获取值.

有人知道怎么做吗?

wee*_*ens 12

jobject row = env->GetObjectArrayElement(objArray, 2);
jobject value = env->GetObjectArrayElement((jobjectArray)row, 1);
const char* cvalue = env->GetStringUTFChars((jstring)value, 0);
Run Code Online (Sandbox Code Playgroud)

  • 还是有问题!^^无论如何,c ++代码知道数据类型(例如:string,int,double,...),以便我可以将它放入好的变量类型?或者是否有一种通用类型可以用来存储这些变量? (2认同)