class Out
{
  public static void f() 
    { 
      Inner in = new Inner();
      final  class Inner 
        {                } 
    }
}

解决方案 »

  1.   

    你把 Inner in = new Inner();写到Inner类定义的下面。
      

  2.   

    为什么要这么写
    外部类都可以在外面写new的
      

  3.   

    class Out
    {
      public static void f() {
    final Inner in;
    in = (new Out()).new Inner(); 
    System.out.print(in);
    }    class Inner { } 
    }
      

  4.   

    楼主的学习方式适合结合java语言规范来学习。
      

  5.   


    class Out
    {
      public static void f() 
        { 
          final  class Inner 
            {                   } 
          Inner in = new Inner();
        }
    }
      

  6.   

    非static内部类必须获得外部类的实例
      

  7.   

    感觉类似于 C/C++ 中的 typedef 结构体的定义,这样看也许更直接点:
            final  class Inner 
            {                   }  Inner in = new Inner();
      

  8.   

    class Out 

      public static void f() { 
    final Inner in; 
    in = (new Out()).new Inner(); 
    System.out.print(in); 
    }     class Inner { } 
    }
    你是在外部类中创建内部类对象就像上面这么写,在内部类当中创建像下面这么写:
    class Inner { 
    public static void foo(){
    Inner in=new Inner();

      

  9.   

    java是先定义后使用的。变量如此,类更是如此。
      

  10.   

    java的方法好像可以先使用后定义的吧