java - 在 Java 对象中存储 native 指针的 'correct' 方法是什么?

标签 java java-native-interface

在 Java 对象中存储 native 指针的“正确”方法是什么?

如果我碰巧知道 native 指针的大小 <= 32 位,我可以将指针视为 Java int,如果碰巧知道,我可以将指针视为 Java long要知道 native 指针的大小 <= 64 位。但是有没有更好或更清洁的方法来做到这一点?

编辑:从 JNI 函数返回 native 指针正是我想要做的。我宁愿返回一个代表 native 资源的 Java 对象。但是,我返回的 Java 对象大概有一个包含指针的字段,这让我回到了最初的问题。

或者,是否有更好的方法让 JNI 函数返回对 native 资源的引用?

最佳答案

IIRC,java.util.zipjava.nio 都只使用 long

关于java - 在 Java 对象中存储 native 指针的 'correct' 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/337268/

相关文章:

java - 如何定义 swig typemap 以将 unsigned char* 返回给 java

java - 从继承的 native 部分调用基方法 (Android)

java - 如何使用 LayoutInflater 动态添加 editText 和按钮并为它们设置唯一的 id?

java - 带排序功能的 JTable 渲染器

java - 如何处理并发事务?

c++ - 将 long int 转换为结构指针

java - 在 10 分钟的窗口内存储对象

Javascript 客户端从 Java Web 套接字读取

java - 带有 C++ 的 JNI 在 cout、printf 和方法调用上不断崩溃

java - 无法在 libjvm.dylib (Mac OS) 中找到方法 JNI_GetCreatedJavaVMs