何时使用嵌套类、局部类、匿名类和 Lambda 表达式
在嵌套类、局部类、匿名类和 Lambda 表达式之间进行选择
如嵌套类部分所述,嵌套类使您能够逻辑地对仅在一个地方使用的类进行分组,提高封装的使用,并创建更易读和易于维护的代码。局部类、匿名类和 Lambda 表达式也具有这些优点;但是,它们旨在用于更具体的场景。
- 局部类:如果您需要创建多个类的实例,访问其构造函数或引入新的命名类型(例如,您需要稍后调用其他方法),请使用它。
- 匿名类:如果您需要声明字段或其他方法,请使用它。
- Lambda 表达式
- 如果您要封装要传递给其他代码的单个行为单元,请使用它。例如,如果您希望对集合中的每个元素执行某个操作,当进程完成时,或者当进程遇到错误时,您将使用 Lambda 表达式。
- 如果您需要一个简单的函数接口实例,并且不适用上述任何条件(例如,您不需要构造函数、命名类型、字段或其他方法),请使用它。
- 嵌套类:如果您的需求类似于局部类,您想使类型更广泛地可用,并且您不需要访问局部变量或方法参数,请使用它。
- 如果您需要访问封闭实例的非公共字段和方法,请使用非静态嵌套类(或内部类)。如果您不需要此访问,请使用静态嵌套类。
上次更新: 2021 年 9 月 14 日