2013-02-06 34 views

Trả lời

13
java.lang.Object.()V 

là một phương pháp void (V) trên java.lang.Object rằng không có đối số.

java.lang.Boolean.(Z)V 

là một phương pháp khoảng trống trên java.lang.Boolean mà phải mất một đơn boolean (Z từ Bbyte) lập luận.

Nói tóm lại,

abc.def.WXYZ(IIIIIIIIIIIIII)J 
^   ^   ^
target_class argument-types return_type 

Xem JNI Type Signatures để xem chi tiết hơn.

JNI sử dụng chữ ký loại của máy ảo Java. Bảng 3-2 cho thấy các chữ ký kiểu này.

Bảng 3-2 Java VM Loại Signatures

Type Signature    Java Type 
Z       boolean 
B       byte 
... 
L fully-qualified-class ; fully-qualified-class 
[ type      type[] 
(arg-types) ret-type  method type 

Ví dụ, phương pháp Java:

long f (int n, String s, int[] arr); 

có kiểu chữ ký sau đây:

(ILjava/lang/String;[I)J 
3

Đó là tất cả chữ ký phương thức trong bytecode được JVM sử dụng.

<init>()V and <init>(Z)V là chữ ký construtor. Đối với các hàm tạo JVM giống như bất kỳ phương thức nào khác, chúng có tên, luôn là <init>) và giá trị trả về luôn là V (có nghĩa là void).Trong trường hợp của chúng tôi Z nghĩa boolean tham số (B được dành riêng cho byte)

đó là

<init>(Z)V 

trong bytecode class Test có nghĩa

class Test { 

    Test(boolean arg0) { 
    } 
} 

bạn cũng có thể đáp ứng

static <clinit>()V 

có nghĩa là khối khởi tạo tĩnh

static { 
... 
} 
Các vấn đề liên quan