java内部类的小疑点

java内部类的小问题public classOuter{class Inner{}}然后实例化内部类对象时在eclipse上报错,代码如下pub

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();    }