我们如何在 JNI 中创建新的原始类型。我有一个返回jobject
. 可以返回jint
,jchar
等。
有,NewString
为什么没有NewInteger
,,,等等。目前在 JNI 层没有自动装箱。NewCharacter
NewDouble
我可以进行NewObject
调用,但是创建原始类型的开销太大。
jobject NewInteger(JNIEnv* env, jint value)
{
jclass cls = FindClass(env, "java/lang/Integer");
jmethodID methodID = GetMethodID(env, cls, "<init>", "(I)V", false);
return env->NewObject(cls, methodID, value);
}
我有包装函数来获取 Class 和 MethodID。