jclass FindClass(const char *className,bool inQuiet) { std::string cppClassName(className); jclass ret; if(jClassCache[cppClassName]!=NULL) { ret = jClassCache[cppClassName]; } else { JNIEnv *env = GetEnv(); jclass tmp = env->FindClass(className); if (!tmp) { if (inQuiet) { jthrowable exc = env->ExceptionOccurred(); if (exc) env->ExceptionClear(); } else CheckException(env); return 0; } ret = (jclass)env->NewGlobalRef(tmp); jClassCache[cppClassName] = ret; env->DeleteLocalRef(tmp); } return ret; }
jclass FindClass(const char *className) { std::string cppClassName(className); jclass ret; if(jClassCache[cppClassName]!=NULL) { ret = jClassCache[cppClassName]; } else { JNIEnv *env = GetEnv(); jclass tmp = env->FindClass(className); ret = (jclass)env->NewGlobalRef(tmp); jClassCache[cppClassName] = ret; } return ret; }