如果要在JNI中相等,我想比较两个jbyteArray。是否有类似“ strcmp”的方法?
答案 0 :(得分:1)
如果要检查两个 jbyteArray 实际上是相同的对象,则可以使用env->IsSameObject(array1, array2)
进行测试。
如果它们实际上是不同的对象,则可以通过逐元素匹配将它们与JNI进行比较。自然地,首先比较两个对象的长度,然后仅在长度相等时才固定它们的元素是明智的。
GetByteArrayElements(array)
返回一个C字节数组,因此可以将两个 jbyteArray 的结果与memcmp()
进行比较。
即使您不再需要Java对象,也不要忘记在使用后释放数组。在开始比较它们之前,请不要忘记检查两个 jbyteArray 是否都不为空。