为什么 Java 中存在匿名 类?

Why anonymous classes exist in Java?

与普通 类 相比,匿名 类 是否有任何特殊功能,因为我没有看到那些 类 有什么特别之处?

Is there any special features in anonymous classes when compared to normal classes

确实有一个特殊功能:它们具有 闭包 的语义,这意味着您可以在其声明站点的范围内访问局部变量。匿名 class 是 local class 的特例,具有相同的特征;然而,几乎从未使用过命名的本地 class。

相对于"normal"classes,匿名classes也是innerclasses,也就是说他们也捕获封闭 class 的实例(如果在非静态上下文中声明)。

总而言之,匿名 class 是 Java class 可以拥有的所有特殊功能的集合。

也许程序员会很累,什么时候必须发明XxxxxListener的第100个突变。一小段代码不值得。这是我个人的看法。

恕我直言,匿名 class 优于 IDE f.e 中自动生成的名称 combo1、combo2、combo3。 Delphi。 疲惫的程序员接受不重要的对象(本地等)这样的名称,但也很重要,这是非常糟糕的习惯