android NDK java-c中的簽名

引用自: 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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章