zoukankan      html  css  js  c++  java
  • [转]JNI字段描述符“([Ljava/lang/String;)V”

     

    JNI字段描述符“([Ljava/lang/String;)V”

     分类:

    “([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。一个数组int[],就需要表示为这样"[I"。如果多个数组double[][][]就需要表示为这样 "[[[D"。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组 的类型。

    如果以一个L开头的描述符,就是类描述符,它后紧跟着类的字符串,然后分号“;”结束。

    比如"Ljava/lang/String;"就是表示类型String;

    "[I"就是表示int[];

    "[Ljava/lang/Object;"就是表示Object[]。

    JNI方法描述符,主要就是在括号里放置参数,在括号后面放置返回类型,如下:

    (参数描述符)返回类型

    当一个函数不需要返回参数类型时,就使用”V”来表示。

    比如"()Ljava/lang/String;"就是表示String f();

    "(ILjava/lang/Class;)J"就是表示long f(int i, Class c);

    "([B)V"就是表示void String(byte[] bytes);


    Java 类型

    符号

    Boolean

    Z

    Byte

    B

    Char

    C

    Short

    S

    Int

    I

    Long

    J

    Float

    F

    Double

    D

    Void

    V

    objects对象

    以"L"开头,以";"结尾,中间是用"/" 隔开的包及类名。比如:Ljava/lang/String;如果是嵌套类,则用$来表示嵌套。例如 "(Ljava/lang/String;Landroid/os/FileUtils$FileStatus;)Z"

    另外数组类型的简写,则用"["加上如表A所示的对应类型的简写形式进行表示就可以了,

    比如:[I 表示 int [];[L/java/lang/objects;表示Objects[],另外。引用类型(除基本类型的数组外)的标示最后都有个";"

    例如:

    "()V" 就表示void Func();

    "(II)V" 表示 void Func(int, int);

    "(Ljava/lang/String;Ljava/lang/String;)I".表示 int Func(String,String)

  • 相关阅读:
    USACO Milk2 区间合并
    Codeforces 490B Queue【模拟】
    HDU 3974 Assign the task 简单搜索
    HDU 5119 Happy Matt Friends(2014北京区域赛现场赛H题 裸背包DP)
    Cin、Cout 加快效率方法
    POJ 1159 回文LCS滚动数组优化
    POJ 2479 不相交最大子段和
    POJ 1458 最长公共子序列 LCS
    在阿里最深刻的,还是职场之道给我的震撼
    精细化
  • 原文地址:https://www.cnblogs.com/Crysaty/p/6672632.html
Copyright © 2011-2022 走看看