import javax.swing.*;
class A
{

public static void f()()
{
final JButton jb = new JButton("jb");
class Inner
{
public void f()
{
jb = null;
}
}
}
public static void main(String args[])
{
new A().f().new Inner();  //这里生成内部类对象出错??!!
                                                //要生成Inner对象,怎么写
}
}

解决方案 »

  1.   

    方法里的局部内部类只能在方法里用,或者在方法中创建对象,再通过接口类型or抽象类类型传到方法之外.建议看看Thinking in Java,感觉书里把抽象类的内容都弄出来了.
      

  2.   

    在方法中定义的内部类只能是abstract或final的,不能两种同时有,也不能有public或private或protected。
      

  3.   


     public static void f()
        {
          final JButton jb = new JButton("jb");        class Inner
            {
                public void f(Object jb)
                {
                 A a=new A();
             Inner inner=new Inner ();
             inner.f(jb);
                    jb = null;
                }
            }
        }