2

我是 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);

我知道上面的代码是错误的,但是有没有比较字节数组的正确方法

4

1 回答 1

1

如果需要比较两个 jbyte 数组,请使用 memcmp。

#include <string.h>
int memcmp(const void *s1, const void *s2, size_t n);

在你的例子中,

jboolean isEqual = (memcmp(bytes1, bytes2, 4) == 0);
于 2012-11-08T20:23:55.220 回答