通过JNI进行智能指针和外部代码交互

时间:2011-04-13 16:00:41

标签: java c++ java-native-interface smart-pointers ns-3

我想知道最好的方法是使用指针(通过内存地址)到C ++库中的对象,这样可以自由使用智能指针(ns-3)。目前,我使用基于路径的查找,我关注它的效率,因为它似乎为每个调用执行完整的树遍历。如果我维护一个指向对象的标准指针以便在JNI边界上使用,那么该对象可能会被丢弃,而Java仍然拥有对它的引用。最好使用指向智能指针的指针吗?

干杯,
克里斯

1 个答案:

答案 0 :(得分:2)

这基本上是我们的解决方案。在Java方面,对象被保存为简单的id,具有id到指针的非常简单的算法映射(实际上是reinterpret_cast)。对于由引用计数指针管理的对象,id指向的“对象”是引用计数指针。

以防万一:不要忘记在终结者中释放它。