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

匿名类例子,不能编译
public   class   Outer
{
public   static   void   main(String[]   args)
{
//   TODO   自动生成方法存根
    new   Outer().Callinner(new   Inner(){
   
    int   x   =   2;
    public   void   fun()
    {
    System.out.println( "x   =   "+   x);
   
    }
    }//class   A
      );
                           
}
//定义外部类方法
public   void   Callinner(Inner   a)
{

a.fun();
}
}
请问为什么不能编译呢?

------解决方案--------------------
你的匿名类Inner写在了main()方法内部,作用域限于方法内, Callinner(Inner a)方法怎么能识别数据类型Inner 呢。
------解决方案--------------------
方法内部不能定义方法!