【发布时间】:2011-03-19 16:48:18
【问题描述】:
我正在使用 JNI 为一些 C 代码创建 Java 包装器。 C 端的依赖项如下所示:
a = make_a();
b = make_b(a);
在 Java 方面,我使用class A 和class B 来保存对make_a() 和make_b 输出的引用以及各种操作。此外,class B 依赖于 class A。
如何在 JNI 中创建两个类之间的依赖关系?
更新
我需要在使用 B 类时不对 A 类进行 GC,并且我需要在 JNI 中创建此依赖项。
【问题讨论】:
-
那么你想让 B 类能够持有指向 A 类的指针吗?我不完全确定你在做什么,但你可以将一个指针从 C/C++ 结构传递给 Java,然后再传回来。
-
我需要在使用 B 类时不对 A 类进行 GC,并且我需要在 JNI 中创建此依赖项。
-
你不能添加到 Java 接口(在它进入 JNI 之前的那个点),所以对 make_b(a) 的调用将返回一个 B 的实例,其中包含对传入 A 的引用实例?
标签: java c java-native-interface