如“嵌套类”一节所述,嵌套类使您能够逻辑地对仅在一个地方使用的类进行分组,提高程序的封装性,并创建更易读和可维护的代码。局部(本地)类,匿名类和lambda表达式都具备了这些优点 ; 但是,它们各自有更具体的情况使用场景:
- 局部(本地)类:如果您需要创建一个类的多个实例,访问其构造函数或引入新的命名类型(例如,以后需要调用其他方法),请使用它
- 匿名类:如果需要声明字段或其他方法,请使用它。
- Lambda表达式:
- 1、如果您封装一个需要传递给其他代码的单个行为的单元,请使用它。例如,如果要对集合的每个元素,流程完成或进程遇到错误时执行特定操作时使用lambda表达式。
- 2、如果您需要函数接口的简单实例,并且不适用上述条件(例如,您不需要构造函数,命名类型,字段或其他方法),请使用它。
- 嵌套类:
- 1、如果您的要求类似于本地类的要求,则可以使用它,您希望使类型更广泛地可用,并且不需要访问局部变量或方法参数。
- 2、如果您需要访问封闭实例的非公有字段和方法,请使用非静态嵌套类(或内部类)。如果您不需要此访问权限,请使用静态嵌套类。