日期:2014-05-20  浏览次数:20726 次

java内部类的小问题
public class Outer{

  class Inner{
 
  }
}

然后实例化内部类对象时在eclipse上报错,代码如下

public class Test1 {
public static void main(String[] args) {
Outer a = new Outer();
a.Inner b = new a.Inner();//这一步编译不通过,改成Outer.Inner b = new Outer.Inner()也报错
}
}


这是什么原因,我个人觉得不应该报错。但就是报错了,

------解决方案--------------------
非静态的内部类 必须要有外部类的实例才能创建,你的问题是内部类的 名称写的不对a.Inner的声明不对,应该用Outer.Inner b就正常了
Java code

public static void main(String[] args) {
        Outer a = new Outer();
        Outer.Inner b=a.new Inner();
    }