JNI中如何調(diào)用JAVA中的類中的父類方法

在JAVA開發(fā)和Android的JNI開發(fā)中有很多小伙伴都是只會(huì)在JAVA中調(diào)用C/C++中的方法,不知道怎么在C/C++中如何調(diào)用JAVA中的方法和屬性,當(dāng)然在JNI中調(diào)用JAVA中的方法和屬性用得并不多。

在java中實(shí)體化類對(duì)象,并定義native方法,如果下圖:


然后還是在C中把native方法實(shí)體,代碼碼如下:


在這里補(bǔ)充一下,如果不想調(diào)用java中父類的方法,而是調(diào)用子類的方法可以用CallobjectMethod();的方法,即可。調(diào)用父類的方法是CallNonvirtualobjectMethod();即可。

其中GetMethodID();第四個(gè)參數(shù)為方法的簽名,那么怎么查看java中方法的簽名呢?我們可以用jdk中的工具查看其簽名,其命令為“javap -s -p 全類名”,如下圖:


最后在java中調(diào)用該native方法就可以了,如下圖:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容