我倾向于在不需要为完成某些任务而拥有完整类的情况下使用匿名内部类。例如,如果我想实现一个
ActionListener或
Runnable,但是我认为没有必要使用一个内部类。例如,
Thread使用匿名内部类来启动simple
可能更容易理解:
public void someMethod(){ new Thread(new Runnable() { public void run() { // do stuff } }).start();}在某些情况下,例如上面的示例,它可以提高可读性,尤其是对于一次性任务,因为要执行的代码全部集中在一个位置。使用内部类将使代码“非本地化”:
public void someMethod(){ new Thread(new MyRunnable()).start();}// ... several methods down ... //class MyRunnable implements Runnable{ public void run() { // do stuff }}就是说,但是,如果在某些情况下将要重复同一件事,那么它确实应该是一个单独的类,无论是常规类还是内部类。
我倾向于在程序中使用匿名内部类,这些类只是在尝试而不是将其作为实际应用程序的主要功能。



