1L应该是说单单在 new ActionListener(){ ... }; 这情况下吧,我是这么理解的。 当然后面可以创建很多实例。
我使用匿名内部类的情况基本都是 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"); } }; } }
谁说匿名内部类只能有一个实例?我可以先获取实例,然后进行clone或者反射getClass().newInstance()或者,我干脆再执行一下那个生成匿名类实例的代码,不就又一个实例出来了么?
1L应该是说单单在
new ActionListener(){
...
};
这情况下吧,我是这么理解的。
当然后面可以创建很多实例。
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");
}
};
}
}
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遍,不是说复制粘贴这样
}