반응형

 

JNI method signature에 대한 예시 몇개를 보자

 

Java Method JNI method signature 설명
void onSpeedUp(int spped, String carName, byte[] byteData) (ILjava/lang/String;[B)V Return type: void -> V
Parameter type: 
int -> I
String -> Ljava/lang/String;
byte[] -> [B
int size(byte[] arr) (I[B)I Return type: int → I
Parameter type: byte[] → [B
byte[] covertToString(String s) ([Ljava/lang/String;)[B Return type: byte[] → [B
Parameter type: String → Ljava/lang/String;
int[] covertToint(String s) ([Ljava/lang/String;)[I Return type: int[] → [I
Parameter type: String → Ljava/lang/String;
boolean isConnected() ()Z Return type: boolean → Z
Parameter type: none (no parameters)
AAA returnAAA(BBB b) (LBBB;)LAAA; Return Type:

AAA is a class, so its type in JNI is L<class name>;
Therefore, AAA → LAAA;
Parameter Type:

BBB is also a class, so its type in JNI is L<class name>;
Therefore, BBB → LBBB;

 

※ 주의할점

String은 Ljava/lang/String이 아니라 Ljava/lang/String; 

즉 세미콜론까지 함께 붙여주어야 한다.

 

 

 

아래를 참고하면 특정 Java method에 대한 JNI method signature를 쉽게 이해할 수 있다.
https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/types.html

 

 

 

반응형