有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java匿名类,何时何地?

我在自学java,我真的很喜欢它,但是我来到了“匿名类”这个主题,我试图从我的书中了解什么时候,在哪里你会使用它,我的书说这是一个非常流行的类,但我似乎无法理解它,我理解如何创建它们。但我只是想了解更多的信息,这样我就可以开始在我的类中实现它们了

我真的希望能举一些例子,并对何时使用它们进行更多的解释


共 (2) 个答案

  1. # 1 楼答案

    如果您编写一个命名类SomeClass,然后意识到您只需要编写new SomeClass一次,那么使用匿名类通常更有意义

    只有当类的主体很短(否则可读性会受到影响)并且不能使用lambda或方法引用时,才应该这样做

  2. # 2 楼答案

    首先,你永远不需要一个匿名类。您始终可以创建命名类。刚开始学习时,了解匿名类的主要原因是在阅读的代码中识别它们

    如果希望创建某个对象只使用一次(因此不值得为类型指定名称、将其放入自己的文件中等),则可以使用匿名类。大多数情况下,它们在事件驱动编程(如使用Swing)中很方便。事件处理程序通常是一个一次性的,特定于要插入的控件,因此没有必要给它命名

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

    好的开始示例在the Oracle Java tutorial中。java中的FileFilter和FilenameFilter类。io包通常与匿名类一起使用,以指定筛选器应返回的文件

    在Java8 lambdas中,提供了一种更好的方法来创建只使用一个方法的类的单次使用实例