JNI学习(一)—— JAVA方法签名

工作中涉及到了JNI,之前JNI对我完全来说就是底层,现在也得接触了。在实际场景中,很容易出现JNI调用JAVA方法的情况,这个时候就需要知道JAVA方法的签名,这里做一下记录。

方法一:使用Javap命令
javap

方法说明如图所示,接着进入class文件所在的文件夹
使用javap -p -s XXX.class


示例

当然仅仅是这样显然是很麻烦的,有时候也不一定能马上编出class文件,而且一般所在的class文件都比较深,实际工作时,操作起来并不方便,那么就看方法二。

方法二:直接写出来

JAVA方法签名是确认的,直接按规则写上签名就行,先看网上的规则表:


签名规则

比如说对于String类,则是:
String --> Ljava/lang/String; (/java/lang/String; 这部分就是全限定类名,其实就是包名加类)

那么对于方法呢,则是前面是方法,后面是返回值:
Point test(int x,float y) --> (IF)Ljava/awt/Point;

在加上数组则是:
Object[] test(byte x,char y) --> (BC)[Ljava/lang/Object;


例子
另外的例子

主要是要注意下内部类的签名方式。

总而言之,就是这些套路,照着来就行。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。