我正在自学Java,我非常喜欢它,但是我来到了“匿名类”主题,并且我试图从我的书中了解何时,何地使用它,这在我的书中说得很对。受欢迎的课程,但我似乎无法理解,我知道如何创建它们。但是我只是在寻找更多信息,因此我可以在课堂上开始实现它们。
我将不胜感激一些示例,并在何时使用这些示例有更多解释。
最佳答案
首先,您永远不需要匿名类。您始终可以创建一个命名类。当您刚入门时,了解匿名类的主要原因是在您阅读的代码中识别它们。
如果要创建某个对象仅使用一次,则可以使用匿名类(因此,不值得为该类型命名,将其放入自己的文件等)。通常,它们在事件驱动的编程中很方便,例如使用Swing。您的事件处理程序通常是一次性的,专门针对您要插入到的控件,因此没有必要为其命名。
对于事件处理程序,通常需要访问周围的对象,因此将事件处理程序作为内部类很方便,并且其对周围上下文的引用意味着它根本不可重用。
the Oracle Java tutorial中提供了很好的示例。 java.io包中的FileFilter和FilenameFilter类通常与匿名类一起使用,以指定过滤器应返回的文件。
在Java 8中,lambdas为您提供了一种更好的方法,该方法仅使用一种方法来创建类的一次性实例。