m.Inner只是一个类,并非类实例

解决方案 »

  1.   

    编译不过是因为你没有将内部类实例化,System.out.println(m.Inner.a);
    变成System.out.println(m.new Inner().a);就可以编译和执行了。
      

  2.   

    calss Inner根本没有实例化
    firefly2000(六熊熊)解释是对的
    其实如果不实例化,将class Inner定义为static的也行
      

  3.   

    如下:
    public class A9{
       static class Inner{
            public static int a;
        }
        public  int b;
        public static void main(String[] args){
            A9 m = new A9();
            System.out.println(m.b);
            System.out.println(Inner.a);
        }
    }
      

  4.   

    所有非静态类在使用的时候都需要new 的,内部类也一样啊!
      

  5.   

    王文友说构造内部类时,不进行实例化也不调用构造器
    难道内部类都要这样用才行
    outerclass.new innerclass();
      

  6.   

    使用内部类的时候,当然要初始化才行,除非这个类是static的,即为静态内部类==============================
    在下所说,也许并非正确,请从建议的角度批判地吸收!
      

  7.   

    呵呵,alphazhao(绿色咖啡)兄怎么这么谦虚了:)
    真理就是真理,不需要批判的,呵呵
    是不是被那帖子弄怕了,现在我发觉大家说话都特小心:)