匿名类例子,不能编译
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 呢。
------解决方案--------------------方法内部不能定义方法!