blog of faywong

备案号: 浙ICP备2025185971号

  menu
41 文章
0 浏览
0 当前访客
ღゝ◡╹)ノ❤️

Java JNI方法签名void类型

在Java中经常会遇到通过外部语言扩展Java本身的需要,此时就需要使用到JNI这门技术(规范)。
在c/c++中,java层的数据类型需要转化成类型签名,如在google中被收录在最前边的官方文档Table 3-2所示。

问题来了,那么void类型在c/c++用什么来映射呢。这份表格里边是没有的(对应java 7的JNI规范里边也没有)。今天在其他文档里边间接查到void类型的类型签名是V:

Type     Chararacter
boolean      Z 
byte         B 
char         C 
double       D 
float        F 
int          I 
long         J 
object       L 
short        S 
void         V
array        [ 

比如Java方法:

public static void jsDebugDetachCallback(long udata)

的类型签名为(其中返回值类型V不可省略):

"(J)V"

在c中获取该方法id的方式为:

jsDebugDetachCallbackMethod = (*env)->GetStaticMethodID(env, someClz, "jsDebugDetachCallback", "(J)V");

标题:Java JNI方法签名void类型
作者:faywong8888
地址:https://blog.fay.wang/articles/2025/08/10/1754806339808.html