У меня есть следующий JNI-метод, который изначально создает коллекцию объектов Java, а затем возвращает их в Java:
JNIEXPORT jobject JNICALL Java_com_test_myClass_myMethod(JNIEnv * env, jclass klass) {
jclass arrayClass = env->FindClass("java/util/ArrayList");
jmethodID initMethod = env->GetMethodID(arrayClass, "<init>", "()V");
jmethodID addMethod = env->GetMethodID(arrayClass, "add", "(Ljava/lang/Object;)Z");
jobject myArray = env->NewObject(arrayClass, initMethod);
env->CallBooleanMethod(myArray, addMethod, env->NewStringUTF("Hello"));
env->CallBooleanMethod(myArray, addMethod, env->NewStringUTF("World"));
return myArray;
}
Нужно ли мне освобождать объекты, созданные в собственном коде, или это делается автоматически GC? Если я это сделаю, как мне это сделать, поскольку мне нужно вернуть его на Java?