匿名类,何时何地?

D. *_*ett 2 java anonymous class

我正在自学java,我真的很喜欢它,但是我来到了"Anonymous Class"主题,而我正试图理解何时,甚至在哪里使用它,从我的书中说它是一个非常流行的课程,但我似乎无法理解它,我明白如何创建它们.但我只是在寻找更多的信息,所以我可以开始在我的课程中实现它们.

我真的很感激一些例子,并且对它们何时使用它们有更多的解释.

Nat*_*hes 8

首先,您永远不需要匿名课程.您始终可以创建命名类.当您刚开始时,了解匿名类的主要原因是在您阅读的代码中识别它们.

如果你想创建一些只使用一次的对象,那么你可以使用一个匿名类(所以给这个类型命名,把它放在自己的文件中等等是不值得的).大多数情况下,它们在事件驱动编程中派上用场,例如使用Swing.您的事件处理程序通常是一次性的,特定于您将其插入的控件,因此没有必要给它起一个名字.

对于事件处理程序,通常需要访问周围的对象,因此方便事件处理程序成为内部类,并且它对周围上下文的引用意味着它根本不可重用.

Oracle Java教程中有很好的开始示例.java.io包中的类FileFilter和FilenameFilter通常与匿名类一起使用,以指定过滤器应返回的文件.

在Java 8中,lambdas为您提供了一种仅使用一种方法创建一次性类的实例的更好方法.