java jni store类实例供以后重用

时间:2012-01-06 18:21:58

标签: java class java-native-interface instance

我的镜像C ++类的java类包含一个字段 它包含C ++实例的C ++指针 这部分和许多其他包装一样正常

我想要做的是反过来

我希望能够将Java实例存储在C ++类的userdata字段

当我正在包装的c ++库返回一个我想要的c ++类实例时 获取userdata并将其转换回包含的java类实例 那个指针,我不想用指针重新创建一个新的java对象 重用原始类实例......

为了解释这个解释,我将详细介绍一个示例生命周期

创建一个新的java对象 java对象构造函数用“this”调用本机函数 它创建一个java对象正在镜像的C ++对象 java“this”引用存储在C ++对象“userData”字段

当另一个C ++函数返回c ++指针时,使用此指针 检索包含对java实例的引用的userData 封装它

将原始对象的java实例返回给java ...

我将java值传递给C ++并将其转换为long printf总是为不同的实例显示相同的值!!

1 个答案:

答案 0 :(得分:0)

当另一个C ++函数返回一个c ++指针时,该指针用于检索包含对封装它的java实例的引用的userData