JNI方法命名和方法簽名


JNI的方法命名規則

對於初學者來說,JNI開發,生成的JNI方法,都是通過調用javah命令來生成的。

但是寫的多了,可以發現其實也是有規律可尋的。

下面就簡單說下JNI的方法命名規則;

1.前綴: Java_

2.類的全限定名,用下划線進行分隔(_):com_lms_jni_JniTest

3.方法名:getTestString

比如java的一個在com.my.example包里的一個MyTest類里的一個getHelloWorld()方法

那么他對應的jni方法名是:

Java_com_my_example_MyTest_getHelloWorld

JNI的方法簽名

首先列出java數據類型與簽名類型的對應關系:

Java類型         類型簽名

boolean           Z

byte                B

int                  I

char               C

short              S

long               L

float              F

double           D

void              V

數組              [類型簽名,比如int[] 是[I

類                 L全限定名;,比如String, 其簽名為Ljava/lang/String;(注意后面有個分號)

對一個方法,其簽名就是其參數類型簽名和返回值類型簽名的字符串,舉例個例子,一目了然。

方法例子1:

public void example1(int string, double index)

對應簽名:

(ID)V

方法例子2:

public string example2(String string, int index)

對應簽名:

(Ljava/util/String;I)Ljava/util/String;

方法例子3:

public int example3(int index, String value,int[] arr)

對應簽名:

(ILjava/util/String;[I)I

看了上面的3個例子,應該就都清楚了吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM