JNI方法CallObjectMethod,CallObjectMethodV和CallObjectMethodA的区别
What does the difference of the JNI method CallObjectMethod,CallObjectMethodV and CallObjectMethodA?
JNI中有3种方法CallObjectMethodCallObjectMethodVCallObjectMethodA那么这两种方法有什么不同呢?
jobject (*CallObjectMethod)(JNIEnv*, jobject, jmethodID, ...);
jobject (*CallObjectMethodV)(JNIEnv*, jobject, jmethodID, va_list);
jobject (*CallObjectMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
唯一的区别是java参数传递的方式。文档解释得很好:
Call<类型>方法例程类型>
程序员放置所有to的参数在methodID参数之后立即传递给方法。CallMethod例程接受这些参数并传递它们到程序员希望调用的Java方法。
Call<类型> MethodA例程类型>
程序员将所有参数放入方法后紧接的jvalues的args数组中的方法methodID论点。CallMethodA例程接受参数,并依次将它们传递给Java方法程序员希望调用。
Call<类型> MethodV例程类型>
程序员将所有参数放入在紧接其后的va_list类型的args参数中使用methodID参数。CallMethodV例程接受参数,并依次将它们传递给Java方法程序员希望调用。
相关文章:
- 没有找到相关文章