[英]associating jobject with a value
jclass object = (*env)->FindClass(env,"java/lang/Integer") // C Code
我有什么办法可以将整数值与object
关联? 我希望object
包含/指向整数。
确保已阅读JNI指南的“ 陷阱”部分中的将Jobclass与Jobject混淆的理解。
FindClass(env, "Foo")
返回java.lang.Class
类型的对象(的句柄)。 从概念上讲,它等效于Class.forName(String)
静态方法:它不会返回您作为参数提供的类的实例( Foo
)。 它返回代表该类的Class
类型的对象。
使用jclass
(或Class
)可以执行的jclass
是找到所需的构造函数,然后调用该构造函数来创建Foo
类型的对象。
JNI指南中有一个示例,说明如何在类String
的Invoking构造函数中执行此操作。 除了方法签名外,对Integer
类执行此操作相似。
您将执行以下操作:
jclass clazz = (*env)->FindClass(env, "java/lang/Integer");
jmethodID mid = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
jobject mint = (*env)->NewObject(env, clazz, mid, 42); // your desired value here
(需要错误检查。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.