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 というタイプシグニチャを持っています。
この場合以下のように対応します。
int n I
String s Ljava/lang/String;
int[] arr [I
long f J
(クラスファイルを逆アセンブルする)JDKのコマンドラインユーティリティ、'javap -s〈クラス名〉' は、クラスを分析し、そのメソッドと変数のシグニチャーを出力します。
例:
class HelloJava |
この場合、javap -s HellowJava は以下のように返ります。
Compiled from HelloJava1.java |