博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JNI字段描述符“([Ljava/lang/String;)V”
阅读量:6710 次
发布时间:2019-06-25

本文共 1042 字,大约阅读时间需要 3 分钟。

hot3.png

“([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。一个数组int[],就需要表示为这样"[I"。如果多个数组double[][][]就需要表示为这样 "[[[D"。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组 的类型。

如果以一个L开头的描述符,就是类描述符,它后紧跟着类的字符串,然后分号“;”结束。

比如"Ljava/lang/String;"就是表示类型String;

"[I"就是表示int[];

"[Ljava/lang/Object;"就是表示Object[]。

JNI方法描述符,主要就是在括号里放置参数,在括号后面放置返回类型,如下:

(参数描述符)返回类型

当一个函数不需要返回参数类型时,就使用”V”来表示。

比如"()Ljava/lang/String;"就是表示String f();

"(ILjava/lang/Class;)J"就是表示long f(int i, Class c);

"([B)V"就是表示void String(byte[] bytes);

 

Java 类型

符号

Boolean

Z

Byte

B

Char

C

Short

S

Int

I

Long

J

Float

F

Double

D

Void

V

objects对象

以"L"开头,以";"结尾,中间是用"/" 隔开的包及类名。比如:Ljava/lang/String;如果是嵌套类,则用$来表示嵌套。例如 "(Ljava/lang/String;Landroid/os/FileUtils$FileStatus;)Z"

另外数组类型的简写,则用"["加上如表A所示的对应类型的简写形式进行表示就可以了,

比如:[I 表示 int [];[L/java/lang/objects;表示Objects[],另外。引用类型(除基本类型的数组外)的标示最后都有个";"

例如:

"()V" 就表示void Func();

"(II)V" 表示 void Func(int, int);

"(Ljava/lang/String;Ljava/lang/String;)I".表示 int Func(String,String)

转载于:https://my.oschina.net/stevenliuit/blog/354243

你可能感兴趣的文章
我的友情链接
查看>>
Windows 7打开.hlp文件
查看>>
Hadoop 完全分布式搭建指南
查看>>
从比特币的疯狂引发出的区块链热潮
查看>>
mongoDB
查看>>
为什么SD-WAN现在正在起飞
查看>>
大数据需要学什么,如何从零开始规划大数据学习之路!
查看>>
服务器双ip部署分布式系统解决办法之一
查看>>
【星云测试】Devops微服务架构下具有代码级穿透能力的精准测试
查看>>
保养硬盘的技巧,让电脑读写更流畅!
查看>>
HashMap面试
查看>>
linux菜鸟基础学习(一)
查看>>
微信支付订单生成脑残问题
查看>>
我的邮件软件运用
查看>>
varnish03 后端主机健康检测机制
查看>>
u盘格式化后数据能恢复吗,格式化数据恢复方法
查看>>
Android进阶知识:事件分发与滑动冲突(二)
查看>>
默认路由 0.0.0.0
查看>>
基础拾遗 -- 再学程序流程图
查看>>
小公司与大企业 -- 如何选择
查看>>