在我的一些项目和一些书中据说不使用内部类(匿名或不是静态或不静态) - 除了在某些限制条件下,如EventListeners或Runnables - 是最佳实践.他们甚至在我的第一个行业项目中都是"禁止".
这真的是最佳做法吗?为什么?
(我不得不说我经常使用它们......)
- 编辑---
我无法在所有这些答案中选择正确的答案:大部分都是正确的部分:我仍然会使用内部课程,但我会尽量少用它们!
所有疯狂的Java范围规则都让我头晕目眩,而公共静态无效的废话无助于解决问题.到目前为止,我使用的所有编程语言都是词法作用域或者没有任何访问修饰符的一些近似,即内部东西捕获外部东西,并且只要内部存在东西就可以访问外部东西.
那么我如何理解Java中内部类的作用域规则呢?他们是否可以访问在外部类中声明的变量,或者是否有一些奇怪的边缘情况我不得不担心因为所有公共静态私有东西浮动?