タイプシグニチャ

Javaとの連携 >

以下の表で示されるように、JNIでは、JVM で定義されている タイプシグニチャを使用します。

タイプシグニチャ

Javaタイプ

Z

boolean

B

byte

C

char

S

short

I

int

J

long

F

float

D

double

Lクラス名:

クラス名

[タイプ

タイプ[]

(パラメータタイプ)戻り値のタイプ

メソッドのタイプ

例:Javaのメソッド long f (int n, String s, int[] arr) は、(ILjava/lang/String;[I]J というタイプシグニチャを持っています。

この場合以下のように対応します。

(クラスファイルを逆アセンブルする)JDKのコマンドラインユーティリティ、'javap -s〈クラス名〉' は、クラスを分析し、そのメソッドと変数のシグニチャーを出力します。

class HelloJava
{
public static void main(String s[])
{
System.out.println("Hello Java Java.");
}
}

この場合、javap -s HellowJava は以下のように返ります。

Compiled from HelloJava1.java
class HelloJava1 extends java.lang.Object {
HelloJava1();
/* ()V */
public static void main(java.lang.String[]);
/* ([Ljava/lang/String;)V */
}