引用自: Android NDK之 —– Java 方法映射到C中的签名
jmethodID md = (*env)->GetMethodID(env,class_CommonMethod,”print”,”(ILjava/lang/String;)V”);
观察下面四个方法对应的签名
public void test(){} ()V
public void test1(int i){} (I)V
public int test2(){ return 1;} ()I
public int test3(int i) { return i;} (I)I
由此可以看出:签名是由两部分组成,"()" 里面代表的是方法的参数,后面外面的部分代表的是该方法的返回值
关于这两部分的定义其实又有分 基本数据类型 和 引用数据类型
基本数据类型对应关系如表:
引用数据类型:比较麻烦点,以“L”开头,以“;”结束,中间对应的是该类型的路径
如:String : Ljava/lang/String;
Object: Ljava/lang/Object;
自定义类 Cat 对应 package com.duicky;
Cat : Lcom/duicky/Cat;
数组表示: 数组表示的时候以“[” 为标志,一个“[”表示一维数组
如:int [] :[I
Long[][] : [[J
Object[][][] : [[[Ljava/lang/Object;
本文介绍了Java方法映射到C中的签名规则,详细解释了如何通过签名来区分不同参数和返回值的方法,并提供了具体示例。此外还讲解了基本数据类型与引用数据类型在签名中的表示方式。
1843

被折叠的 条评论
为什么被折叠?



