lamda和匿名内部类

匿名内部类

匿名内部类在日常编程中还是经常会使用的。比如

ArrayList<String> list=new ArrayList<>();
list.add(new String("Hello World!"));

lamda 是java 8的新特性。配合java8的stream流处理,特别的方便

//list.foreach
ArrayList<String> list=new ArrayList<>();
list.add("Hello");
list.add("World");
list.foreach(o->{
    System.out.println(o);
});
//stream
list.stream().foreach(o->{
    System.out.println(o);
});

java里还有一个函数接口,在编写中也会用lamda去表示,这样简单一点

  • Function
  • Consumer
  • Predicate
  • Supplier
    这几个常用的函数接口在stream流中有大量的使用,还是非常实用的。

个人感觉

我感觉lamda约等于匿名内部类。区别就在于。
匿名内部类是类,所有有类的特点,比如就私有属性,可以重写方法什么的。
lamda是接口,所以必须继承重写,而且没有私有变量等,final 还是可以有的,lamda要求的函数接口 只能有一个方法,如果有多个,其它的必须为default

猜你喜欢

转载自www.cnblogs.com/duangL/p/11610444.html