【问题标题】:How to use a jobject array ? (Jni)如何使用作业数组? (杰尼)
【发布时间】:2011-12-26 04:04:45
【问题描述】:

其实我调用的是一个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"}
        });

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

有人知道怎么做吗??

【问题讨论】:

    标签: java parsing object java-native-interface


    【解决方案1】:
    jobject row = env->GetObjectArrayElement(objArray, 2);
    jobject value = env->GetObjectArrayElement((jobjectArray)row, 1);
    const char* cvalue = env->GetStringUTFChars((jstring)value, 0);
    

    【讨论】:

    • 谢谢,但它给了我错误 :: >IntelliSense:“const char ”类型的值不能用于初始化“char”类型的实体如果我将 """char*""" 更改为 """string""",它给了我那种值 """
    • 编译错误会更有趣。我认为,您需要使用const char* cvalue。我会编辑答案...
    • 还有一个问题! ^^ 无论如何,C++ 代码是否知道数据类型(例如:string、int、double、...),以便我可以将它放入好的变量类型中?或者有没有可以用来存储这些变量的泛型类型??
    猜你喜欢
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多