JNI中如何调用JAVA中的类中的父类方法

在JAVA开发和Android的JNI开发中有很多小伙伴都是只会在JAVA中调用C/C++中的方法,不知道怎么在C/C++中如何调用JAVA中的方法和属性,当然在JNI中调用JAVA中的方法和属性用得并不多。

在java中实体化类对象,并定义native方法,如果下图:


然后还是在C中把native方法实体,代码码如下:


在这里补充一下,如果不想调用java中父类的方法,而是调用子类的方法可以用CallobjectMethod();的方法,即可。调用父类的方法是CallNonvirtualobjectMethod();即可。

其中GetMethodID();第四个参数为方法的签名,那么怎么查看java中方法的签名呢?我们可以用jdk中的工具查看其签名,其命令为“javap -s -p 全类名”,如下图:


最后在java中调用该native方法就可以了,如下图:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容