前提是这个内部类必须是 public 。
假设外部类需要实例化某个类的内部类。那么必须首先实例化内部类的所在类,然后再通过 .new
语法来实例化这个内部类。下面是一个示例:
public class DotNew {
public class Inner {
}
public static void main(String[] args) {
DotNew dn = new DotNew();
DotNew.Inner dni = dn.new Inner();
}
}
首先实例化内部类的所在类(DotNew),然后再通过 .new
语法来实例化这个内部类(Inner)。
也就是说不能直接实例化内部类,必须通过所在类的实例,来间接实例化。
参考:
BruceEckel, 埃克尔, 陈昊鹏. Java编程思想[J]. 机械工业出版社, 2007. p193.