上周在修复bug时,发现Java类中某方法是private,且类中没有用到,第一感觉是方法多余。其实通过分析,发现原来Native Code会通过JNI调到此方法。这也给自己启发,平时做Code refine时,如果方法没有被直接调用,一定要注意是否会有反射会调用到等,否则移除后,编译通过,但会有问题~
虽然是小语法点,但很感兴趣,而且易被忽略。这两天查了一些资料,分享下
一. Native Code调用Java类中private方法
例如JNI开发中,C可以反射调到Java的方法,例如通过GetMethodID等API,原因解释:
![](https://i-blog.csdnimg.cn/blog_migrate/4c5f0cf3ce87df11f4bcec90d184b49e.png)