JNI: Create HashMap

后端 未结 5 773
失恋的感觉
失恋的感觉 2020-12-15 23:55

How do I create a HashMap object in JNI?

5条回答
  •  天涯浪人
    2020-12-16 00:11

    See here:

    Some example code to call a String constructor:

    jstring
     MyNewString(JNIEnv *env, jchar *chars, jint len)
     {
         jclass stringClass;
         jmethodID cid;
         jcharArray elemArr;
         jstring result;
    
         stringClass = (*env)->FindClass(env, "java/lang/String");
         if (stringClass == NULL) {
             return NULL; /* exception thrown */
         }
     /* Get the method ID for the String(char[]) constructor */
         cid = (*env)->GetMethodID(env, stringClass,
                                   "", "([C)V");
         if (cid == NULL) {
             return NULL; /* exception thrown */
         }
    
         /* Create a char[] that holds the string characters */
         elemArr = (*env)->NewCharArray(env, len);
         if (elemArr == NULL) {
             return NULL; /* exception thrown */
         }
         (*env)->SetCharArrayRegion(env, elemArr, 0, len, chars);
    
         /* Construct a java.lang.String object */
         result = (*env)->NewObject(env, stringClass, cid, elemArr);
    
         /* Free local references */
         (*env)->DeleteLocalRef(env, elemArr);
         (*env)->DeleteLocalRef(env, stringClass);
         return result;
     }
    

提交回复
热议问题