lamda和匿名内部类

Posted duangl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于lamda和匿名内部类的主要内容,如果未能解决你的问题,请参考以下文章

Java8中Lamda表达式简介

JAVA8新特性——Lamda表达式

java8的lamda有啥意义

Lamda Expression

JAVA零碎知识点

lamda匿名函数