引用自: Android NDK之 —– Java 方法映射到C中的簽名
jmethodID md = (*env)->GetMethodID(env,class_CommonMethod,”print”,”(ILjava/lang/String;)V”);
觀察下面四個方法對應的簽名
public void test(){} ()V
public void test1(int i){} (I)V
public int test2(){ return 1;} ()I
public int test3(int i) { return i;} (I)I
由此可以看出:簽名是由兩部分組成,"()" 裏面代表的是方法的參數,後面外面的部分代表的是該方法的返回值
關於這兩部分的定義其實又有分 基本數據類型 和 引用數據類型
基本數據類型對應關係如表:
引用數據類型:比較麻煩點,以“L”開頭,以“;”結束,中間對應的是該類型的路徑
如:String : Ljava/lang/String;
Object: Ljava/lang/Object;
自定義類 Cat 對應 package com.duicky;
Cat : Lcom/duicky/Cat;
數組表示: 數組表示的時候以“[” 爲標誌,一個“[”表示一維數組
如:int [] :[I
Long[][] : [[J
Object[][][] : [[[Ljava/lang/Object;