匿名课程是个坏主意吗?

All*_*nde 8 java

使用它们一段时间之后,我不禁觉得你在使用匿名课时被迫跳过的箍是不值得的.

你最终得到了final所有的地方,无论代码是什么,比你使用一个名字很好的内部类更难阅读.

那么使用它们有什么好处?我肯定错过了什么.

Jon*_*eet 13

优点是它是闭包的实现.它很笨重,但它是我们目前用Java最好的.换句话说,您不必为了保留某些已经作为局部变量获取的状态而创建新类.

我有一篇文章比较了C#和Java闭包,以及为什么它们首先有用,这可能有所帮助.

  • 它基本上是假的闭包.它将值复制到新类中.鉴于您无论如何只能获得只读访问权限,并且变量是最终的,因此它非常接近闭包.它是环境的副本,而不是环境本身,但这通常非常接近. (3认同)