获取班级

问题描述:

package test.abc; 

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

当我打电话给Class.forName("test.abc.Base.ChildInner")我得到ClassNotFoundException。出了什么问题?获取班级

你试过test.abc.Base$ChildInner

内部类名由外部类名完全限定,内部/外部由$符号区分。

请注意,编译时这是编译器命名和保存这些内部类的方式。你会在你的课程系统中看到它们。

+1

确实。内部类是在Java 1.1中引入的一种语言破解,即使现在我们仍然被这些随机怪异所困住。 – skaffman 2012-01-18 11:06:16

+0

啊是的,它应该是'$'不是'。' - 从来没有新的!谢谢。 – 2012-01-18 11:07:02