jclass object = (*env)->FindClass(env,"java/lang/Integer") // C Code
有什么办法可以将整数值与object
?我想object
包含/指向一个整数。
jclass object = (*env)->FindClass(env,"java/lang/Integer") // C Code
有什么办法可以将整数值与object
?我想object
包含/指向一个整数。
确保您阅读了 JNI 指南的Pitfalls部分中的Confusing jclass with jobject的理解。
FindClass(env, "Foo")
返回(句柄)类型的对象java.lang.Class
。它在概念上等同于Class.forName(String)
静态方法:它不返回作为参数 ( Foo
) 提供的类的实例。它返回一个Class
表示该类的类型的对象。
你可以用 a jclass
(或 a Class
)做的是找到你想要的构造函数,然后调用该构造函数来创建一个类型的对象Foo
。
JNI 指南有一个示例,说明如何在类的调用构造函数String
中执行此操作。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
(需要错误检查。)