什么时候使用嵌套类、局部类、匿名类以及Lambda表达式

来源:互联网 发布:国家负责统筹协调网络 编辑:程序博客网 时间:2024/06/09 13:38

就像我们在嵌套类的章节里讲的,嵌套类就是把只用在一个地方的类有逻辑的归类分组,可以增强封装的使用,也可以使代码易读易维护。局部类、匿名类和Lambda表达式也拥有这些优点,然而他们的使用还有更具体的场景:

  • 局部类:如果你要创建的类的实例不止一个,不止一次访问构造方法, 或者你要引入一种新的,有名字的类型 (之所以要有名字,因为你可能要在其它方法里调用它)。
  • 匿名类: 用在字段的声明或者额外方法的声明中。
  • Lambda表达式
    • 如果你想封装一小单元行为并且传给其它地方,例如对于一个集合里的每一个元素,当操作完成或者操作失败后,你想要一定的动作,这时候就可以考虑用Lambda表达式。
    • 你只需要一个函数式接口的单一实例,也不可能用其它更多条件会加进去(例如你不需要构造方法,也不需要有名字的类型,也不需要添加额外方法),你就可以考虑用Lambda表达式。
  • 嵌套类 如果你的需求和局部类很相似, 而且你想要你的类型广泛的使用到,它也不需要访问局部变量和方法参数。
    • 如果你需要访问实例的非公有字段或者方法,使用非静态的嵌套类(或者叫内部类)。如果没有这种访问,就用静态的嵌套类。
    • -
0 0