JNI笔记-域描述符

域描述符

1、基本类型描述符

JavaField Desciptor
intI
booleanZ
byteB
charC
longJ
doubleD
floatF
shortS

除了boolean,和 long 对应的比较特殊外,其余的是名称前缀的大写。

2、类描述符

L+包名+类名+;

注意“ ;”是不能省略的!
例如 String 的包名是 java.lang,那么它对应的描述符就是

Ljava/lang/String;

注意java中的包名是用.分割的,jni中要替换成/

3、引用类型描述符

上面已经提到java类的描述符,如String对应的描述符是:Ljava/lang/String;
比较特殊的是 数组,格式是:

 [ + 描述符

其中,是几维数组就有几个“[”
比如:

//一维数组
int[]            [I
double[]         [D
String[]         [Ljava/lang/String;
User[]           [Lxxx/xxx/User;
Object[]         [Ljava/lang/Object;
//二维数组
float[][]        [[F
long[][]         [[J

4、方法描述符

格式:

(参数类型对应的描述符...+返回值类型对应的描述符

原方法的参数列表有多少个参数,对应的描述符的括号内就有多少个相应的描述符,且是按顺序的,括号外面是方法返回值的描述符。

无参带返回值:

public int getAge(){
	return age;
}

getAge的方法描述符则为 ()I

带参带返回值:

public int getAge2(int age2){
	return age+age2;
}

getAge2的方法描述符则为 (I)I

那如果一个方法的描述符为(IF)D,那这个方法则是 double xxx(int i,float f)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值