在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