zoukankan      html  css  js  c++  java
  • 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个例子,应该就都清楚了吧。

  • 相关阅读:
    用定时器令P0(或其它IO口)产生多路方波
    边沿触发和电平触发的区别
    mysql数据库学习小结
    线程状态、同步
    java访问修饰符 public protect default private
    注解Responsebody RequestBody RequestMapping
    input标签元素,value属性取值问题,赋值
    java多线程的三种实现方式
    参数添加 dynamo
    Python 第三方库,模块,包的安装方法
  • 原文地址:https://www.cnblogs.com/bokezhilu/p/7679527.html
Copyright © 2011-2022 走看看