出题人是个废材,所给答案的"但……"部分根本没有针对问题而来。
new MouseAdapter(){
    ...
};new ActionListener(){
    ...
};
匿名内部类只能继承/实现 new 后面那个类/接口,而且只有一个实例。

解决方案 »

  1.   

    回1楼的
    谁说匿名内部类只能有一个实例?我可以先获取实例,然后进行clone或者反射getClass().newInstance()或者,我干脆再执行一下那个生成匿名类实例的代码,不就又一个实例出来了么?
      

  2.   


    1L应该是说单单在
    new ActionListener(){
        ...
    };
    这情况下吧,我是这么理解的。
    当然后面可以创建很多实例。
      

  3.   

    我使用匿名内部类的情况基本都是
    addXXXListener(new XXXListener(){...});没有实现Cloneable接口,clone不能使用。
    再执行一下那个生成匿名类实例的代码,一个新的类生成了。
    public class InnerClass{
        public static void main(String[] args) throws Exception {
    new Runnable(){
        public void run(){
    System.out.println("running");
        }
    };
    new Runnable(){
        public void run(){
    System.out.println("running");
        }
    };
        }
    }
      

  4.   

    public static Runnable test(){
       return new Runnable(){
            public void run(){
            System.out.println("running");
            }
        };
    }public static void main(String[] args){
       Runnable r1 = test();
       Runnable r2 = test();   //r1 和 r2 是同一个匿名类的2个实例吧。说代码运行2遍,不是说复制粘贴这样
    }
      

  5.   

    人浮于事啊!有多少 Java 开发者能灵活运用匿名内部类、内部类和静态内部类?