为什么Java中存在匿名类?

时间:2015-09-03 13:33:14

标签: java class lambda anonymous-class

与普通类相比,匿名类中是否有任何特殊功能,因为我在这些类中没有看到任何特殊内容?

2 个答案:

答案 0 :(得分:7)

  

与普通类相比,匿名类中是否有任何特殊功能

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

与"正常"相比类,匿名类也是内部类,这意味着它们也捕获封闭类的实例(如果在非静态上下文中声明)。

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

答案 1 :(得分:0)

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

IMHO匿名类比IDE f.e中自动生成的名称combo1,combo2,combo3更好。德尔福。 累了的程序员接受这些名称的不重要的对象(本地等)但非常重要,这是非常糟糕的habbit