[英]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.