匿名类与普通类相比有什么特殊功能呢?确实有一个特殊的功能:它们具有闭包的语义,这意味着您可以访问在其声明位置上下文范围内的局部变量。匿名类是本地类的一种特殊情况,该类具有相同的功能;但是,几乎从不使用命名的本地类。与“普通”类相比,匿名类也是内部类,这意味着它们还捕获封闭类的实例(如果在非静态上下文中声明)。总之,匿名类是Java类可以拥有的所有特殊功能的结合体。
也许程序员在必须发明 XxxxxListener 的第100个变异体时会非常疲惫,小代码片段不值得。 这是我的个人意见。 我认为匿名类比IDE(如Delphi)中自动生成的名称(combo1、combo2、combo3)更好。 疲惫的程序员会接受这样的名称用于不重要的对象(本地等),但这对于非常重要的对象也是一个非常不好的习惯。