JNI方法签名规则
来源:互联网 发布:excel 数据保护 编辑:程序博客网 时间:2024/05/19 21:44
JNI方法签名规则
有了数据类型之间的对应关系,JNI就可以正确识别并转换Java类型。那JNI又是如何识别Java的方法呢?
Java支持方法重载,仅靠函数名是无法唯一确定一个方法的。于是JNI提供了一套签名规则,用一个字符串来唯一确定一个方法。其规则如下:
(参数1类型签名参数2类型签名……参数n类型签名)返回值类型签名
以上签名字符串之间均没有空格。
类型签名又有一些规则,如表2-3所示。
表2-3 JNI类型签名规则
(续)
注意 类的签名规则是:“L+全限定类名+;” 三部分组成,其中全限定类名以”/”分隔,而不是用“.”或者“_”分隔。
例如,Java 方法:
- long fun (int n, String str, int[] arr);
其方法签名:
- (ILjava/lang/String;[I)J
括号里面的内容分成三部分,之间没有空格,即“I”、“Ljava/lang/String;”和“[I”,分别代表 int、String和int[]。括号外面是返回值类型签名,J代表long型。
回到Log系统的例子,JNINativeMethod结构体中第二个元素便是方法签名信息, 代码如下:
- static JNINativeMethod gMethods[] = {
- { "isLoggable", "(Ljava/lang/String;I)Z",(void*)
- android_util_Log_isLoggable },
- { "println_native","(IILjava/lang/String;Ljava/lang/String;)I",(void*)
- android_util_Log_println_native },
- };
可以看出isLoggable函数有两个参数,一个是String类型,另一个是int类型,返回值为boolean类型。
0 0
- JNI方法签名规则
- JNI方法签名规则
- JNI方法签名规则
- JNI方法签名规则
- JNI方法签名规则(转载)
- jni 函数签名规则
- 对JNI方法签名规则讲的很好的文章
- android JNI调用过程中的方法签名规则
- JNI中方法签名
- JNI方法命名规则
- JNI类型签名和方法签名
- JNI之GetMethodID方法签名
- JNI 方法注册与签名
- JNI Java 类签名 方法签名 参数签名
- Andoid NDK编程 2 - JNI签名规则
- Andoid NDK编程 2 - JNI签名规则
- JNI里的数据类型 和签名方法
- Java方法签名与JNI,反射
- hadoop伪分布式下 无法启动datanode的原因及could only be replicated to > 0 nodes, instead of 1的错误
- JAVA 4个线程依次输出1 2 3 4
- Java环境windows设置
- Android中使用SQlite进行数据操作
- mysql5.5多实例部署
- JNI方法签名规则
- NYOJ122 盗梦空间
- netty5.0之 ChannelPipeline和ChannelHandler
- 应用框架(AF)及OSAL处理来自AF的数据包流程
- Spark累加器使用
- 数据结构 - 栈的应用:表达式求值(C)
- UVA 11205
- Java类更改常量后编译不生效
- 关于在web情况下访问C#客户端,导致C#客户端无法访问网络映射盘问题