新接触Java,有好多概念还不是很清楚。在native代码中如果我们要构造一个Java类对象并调用它的void jnitest()方法,通过JNIEnvjclass clazz = FindClass(...);
jmethodID constr = GetMethodID(...); // "<init>"
jobject obj = NewObject(...)来生成一个Java类的对象。然后尝试调用jnitest方法:jmthod jnitest = GetMethodID(...);
CallVoidMethod(clazz,jnitest);这有第一个问题,CallVoidMethod接受两个参数第一个是Class,第二个是MethodID,那么它是如何知道应该以obj为对象调用jnitest方法呢( 达到 obj.test() 的效果 )? 还是说jclass或者jmethodID中的哪个已经包含了创建的对象的引用?如果需要生产不同的类对象实例分别调用 jnitest该怎么做?谢谢!
jmethodID constr = GetMethodID(...); // "<init>"
jobject obj = NewObject(...)来生成一个Java类的对象。然后尝试调用jnitest方法:jmthod jnitest = GetMethodID(...);
CallVoidMethod(clazz,jnitest);这有第一个问题,CallVoidMethod接受两个参数第一个是Class,第二个是MethodID,那么它是如何知道应该以obj为对象调用jnitest方法呢( 达到 obj.test() 的效果 )? 还是说jclass或者jmethodID中的哪个已经包含了创建的对象的引用?如果需要生产不同的类对象实例分别调用 jnitest该怎么做?谢谢!
解决方案 »
- android 混淆 找不到 第三方类
- android怎么获得屏幕黑屏或者锁住时候状态?
- android开机启动c程序后,c生成当配置文件在哪儿?
- 图片如何做出浮雕等这样的特效啊
- android BaseExpandableListAdapter
- android 现在只支持JAVA么? 可以用 c++ 么?
- 帮忙扩展下一个通用JSON解析工具
- 安卓listview缓存机制对下拉后单选按钮的干扰
- android GridView控件嵌套GridView
- 安卓的数据存储跟JAVA的数据存储的区别
- Anrdroid通过Asp.net的WebService操作SQL200数据库,中文乱码
- 小问题:发送短信的小程序,急求回答!谢谢啦
callStaticXyzMethod()参数是jclass。