Peter20150926 2023-03-14 10:45 采纳率: 78.3%
浏览 82
已结题

JNA编程,遇到一个奇葩问题,参数初始化失败?

遇到一个非常奇怪的问题,我在一个类中定义的JNA 对象Pointer ,

public class Irp implements AutoCloseable {
    private final Pointer handle = new Memory(2L);

   public Irp() throws UnsupportedFormatException {
   }
}

我断点进来,发现 handle 尽然是allocated@0x0 (2 bytes)

0x0 是空指针的标识,也就是 这个对象初始化失败,怎么回事?? 明明new Memory(2)了,这个new memory(2L) 也是成功的 怎么handle 就是

0x0 空指针的呢? 而且handle的属性中只有size 2 是成功赋值的,peer(地址)没有 为0 ...有谁遇到过这个奇怪的问题

##** 最奇怪的是 单元测试没有遇到,只有走接口的时候会出现这个问题**

图片2

  • 写回答

5条回答 默认 最新

  • 嗝屁小孩纸 2023-03-14 20:06
    关注

    你这种创建对象有没有可能在虚拟机里,也就是jvm管辖的内存中只有一个地址,内存申请在了直接内存中,就像我们用allocateDirection

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月24日
  • 已采纳回答 8月16日
  • 修改了问题 3月15日
  • 修改了问题 3月14日
  • 展开全部