A.BImp aB=new A.BImp    //就是这里,为什么不能用Class A中的InnerClass BImp生成对象呢?试想,你考虑过A.BImp是什么意思吗?
他表示包A下面的类BImp,但是目前来看该A类和你的NestingInterfaces是平行的
所以完全不必要带上头部。

解决方案 »

  1.   

    补充一下,你只需要
    BImp aB = new BImp()即可
      

  2.   

    如楼上所示,此处用A.BImp和用Bimp效果是一样的
    用A.BImp是起到程序清晰增强可读性的作用,
    同时在大项目中也可以适当避免错误.
    试想当你import的某个包中后来也增加了一个BImp类
    此时你用了BImp aB = new BImp()岂不是有点小麻烦.
      

  3.   

    楼主的意思不是让它编译通过,而是问那样为何不行,是吧?
    应该这样写:
    A.BImp aB = new A().new BImp();
    原因:
    BImp类的对象依赖于A类对象的存在,而不是依赖于A的类。
      

  4.   

    A.BImp aB=new A.BImp    //就是这里,为什么不能用Class A中的InnerClass BImp生成对象呢?
    楼主,你的表达式右边的new A.BImp 是什么意思?
    内部类的对象必须利用外部类的一个对象生成。你的表达式好象没有A的对象啊
    要么按楼上的方法改
    要么
     A a = new A();
    A.BImp aB=new a.BImp(); 
      

  5.   

    agree with feiyuegaoshan(飞跃)
      

  6.   

    To all:
      多些个位高手,问题已在众位的帮助下解决!应该是用继承或者Static innerclass或者如feiyuegaoshan(飞跃),seven1996(小七)所说,采用一个A对象连接至InnerClass对象,小弟在此向各位敬礼了!:D
    我的雅虎通语音聊天ID:[email protected],大家共同为Java奋斗吧!