2012-03-30 4 views
13

Cú pháp định danh FindClass chính xác để tải các lớp con là gì? Ví dụ:Định dạng JNI FindClass cho các lớp con?

package a.b.c; 

class Foo { 
    class Bar { 
    ... 
    } 
} 

Để có được Foo tôi có thể làm (*env)->FindClass(env, "https://stackoverflow.com/a/b/c/Foo"), nhưng cố gắng để có được Bar qua (*env)->FindClass(env, "a/b/c/Foo/Bar") ném một ClassNotFoundException. Có một cú pháp khác để biểu diễn các lớp con không?

Trả lời

34

Không sao, công cụ javap tỏ ra hữu ích ở đây. Cú pháp chính xác là:

a/b/c/Foo$Bar

+1

Đó là nguyên tắc chung. Bạn nên luôn luôn sử dụng 'javap', thay vì cố gắng tìm ra. Phương thức JNI và chữ ký kiểu là một ví dụ khác mà 'javap' biết câu trả lời đúng. – EJP

+0

Ngoại trừ trong trường hợp này tôi đang cố gắng làm điều đó trong khi chuyển đổi mã tùy ý, do đó, khởi chạy 'javap' và cố gắng khớp các đầu ra sẽ không hoạt động chính xác. –

+0

Tôi không hiểu điều đó. Có nhiều câu hỏi của bạn hơn bạn hỏi không? – EJP