GetMethodID中sig参数是对函数的签名,也可以说标识,具体的格式为:(函数参数)返回值。
方法签名中用大写的字母对应了java的基本数据类型:
- Z -> boolean
- B -> byte
- C -> char
- S -> short
- I -> int
- J -> long
- F -> float
- D -> double
- V -> void
数组的表示方法,以[
为标志,一个[
标识一维数组,[[
表示二维数组,例如:
- byte[] -> [B
- int[][] -> [[I
引用类型的表示方法,需要以L
开头,以;
结束,中间对应类型的包名加类名,例如:
- String -> Ljava/lang/String;
- Object -> Ljava/lang/Object;
自定义类的表示方法,比如包名为jjz.example,类名为JniHandle的表示方法:
- jjz.example.JniHandle -> Ljjz/example/JniHandle;