2012-01-18 97 views
3
package test.abc; 

public abstract class Base { 
... 
public static class ChildInner extends Base { 
    ... 
} 
} 

當我打電話給Class.forName("test.abc.Base.ChildInner")我得到ClassNotFoundException。出了什麼問題?獲取班級

回答

6

你試過test.abc.Base$ChildInner

內部類名由外部類名完全限定,內部/外部由$符號區分。

請注意,編譯時這是編譯器命名和保存這些內部類的方式。你會在你的課程系統中看到它們。

+1

確實。內部類是在Java 1.1中引入的一種語言破解,即使現在我們仍然被這些隨機怪異所困住。 – skaffman 2012-01-18 11:06:16

+0

啊是的,它應該是'$'不是'。' - 從來沒有新的!謝謝。 – 2012-01-18 11:07:02