我是NDK和学习的新手。
我设法从java代码调用本机方法,但不知道如何比较两个jbyte
数组
这就是我所拥有的:
jbyte bytes1[] = {48, -126, 1,4};
jbyte bytes2[] = {48, -126, 1,4};
jclass cls = (*env)->GetObjectClass(env, bytes1);
jmethodID mid = (*env)->GetMethodID(env, cls, "equals", "([B)Z");
jboolean isEqual = (*env)->CallBooleanMethod(env, bytes1, mid, bytes2);
我知道上面的代码是错误的,但是有一种比较字节数组的正确方法
答案 0 :(得分:1)
如果需要比较两个jbyte数组,请使用memcmp。
#include <string.h>
int memcmp(const void *s1, const void *s2, size_t n);
在您的示例中,
jboolean isEqual = (memcmp(bytes1, bytes2, 4) == 0);