2012-03-30 30 views
13

什麼是加載子類的正確的FindClass標識符語法?例如:用於子類的JNI FindClass格式?

package a.b.c; 

class Foo { 
    class Bar { 
    ... 
    } 
} 

要獲得Foo我可以做(*env)->FindClass(env, "https://stackoverflow.com/a/b/c/Foo"),而是試圖通過(*env)->FindClass(env, "a/b/c/Foo/Bar")獲得Bar拋出一個ClassNotFoundException。是否有不同的語法來表示子類?

回答

34

沒關係,javap工具在這裏證明有幫助。正確的語法是:

a/b/c/Foo$Bar

+1

這是一般原則。你應該總是使用'javap',而不是試圖找出它。 JNI方法和類型簽名是'javap'知道正確答案的另一個例子。 – EJP 2012-03-31 00:27:28

+0

除了在這種情況下,我試圖在轉換任意代碼的時候這樣做,所以啓動'javap'並嘗試匹配輸出結果並不會正確工作。 – 2012-04-09 18:25:15

+0

我不明白。你問的問題比你問的還多嗎? – EJP 2012-04-10 09:25:01