【发布时间】:2010-01-04 07:54:04
【问题描述】:
我想在 C 中分配一些内存并将其与 java 对象实例关联,如下所示:
void configure(JNIEnv *object, jobject obj, ....) {
char *buf = new char[1024];
// associated <buf> with <obj> somehow
}
然后当 java 对象被垃圾回收时释放内存 - 我可以通过调用 java 对象的 finalize() 方法中的 JNI 函数来做到这一点。
问题是,如何将 C 指针与 java 对象关联?在对象中保留一个 long 字段并将指针转换为 long?有没有更好的办法?
【问题讨论】:
-
有点,在那个问题中没有讨论如何将 C 对象关联到 java 实例。在给出的示例中,指针被强制转换为 long。这是唯一的方法吗?
标签: java c++ c java-native-interface android-ndk