2013-10-11 86 views
1

我想緩存方法ID跨呼叫。爲此,我獲得方法ID:Java JNI方法ID緩存

// Put static to clarify it's saved across calls. 
static jmethodID method = env->GetMethodID(class_HelloWorld, name, signature); 

我的問題是:我需要做class_HelloWorld一個全球性的裁判與NewGlobalRef或方法ID可以從當地的裁判獲得並保存(我得到class_HelloWorld使用FindClass),而不需要全局引用類的元數據?

回答

4

如果您從中獲取methodID的類未更改,則可以重新使用methodID。它不像jclassjobject需要緩存爲GlobalRef:它只是一個整數。