根据SWIG Documentation(21.9.1默认基元类型映射),C uint8_t映射到16位的Java short,C uint_15_t映射到32位的Java int。我相信C函数分别是8位和16位,为什么SWIG在用Java包装时会加倍?
答案 0 :(得分:1)
问题是Java类型总是签名。
因此,如果你有一个从0到255的无符号C类型,那么可以代表该范围上半部分的最小Java类型就是短。
另一种方法是你转移或以某种方式转换你的uint8_t
以使用Java byte
的负面部分,但其语义是非常违反直觉。