簡體   English   中英

將jobject與值關聯

[英]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指南中有一個示例,說明如何在類StringInvoking構造函數中執行此操作。 除了方法簽名外,對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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM