在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方法就可以了,如下圖:
