lambda表达式学习
Posted yamiya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lambda表达式学习相关的知识,希望对你有一定的参考价值。
Lambda表达式(jdk8)
1、一个接口如果只有一个抽象方法,那么它就是一个函数式接口。
2、对于函数式接口,我们可以通过lambda表达式来创建该接口的对象。
好处:
1、避免匿名内部类定义过多
2、可以让你的代码看起来简洁
3、去掉一堆没有意义的代码,只留下核心的逻辑。
格式:
()->{代码块}
简化:如果只有一个参数可以去掉括号,如果代码只有一行则也可以去掉花括号。
(a,b)->{System.out.println("正在在背英语单词");} ------->(a,b)->System.out.println("正在在背英语单词");
(a)->{System.out.println("正在在背英语单词");} ------->a->System.out.println("正在在背英语单词");
推导代码:
public class Lambda { //2、静态内部类 static class StudentImpl2 implements Student { @Override public void read() { System.out.println("正在在背英语单词-2"); } } public static void main(String[] args) { //1、普通实现类 Student student = new StudentImpl(); student.read(); //2、静态内部类 Student student2 = new StudentImpl2(); student2.read(); //3、局部内部类 class StudentImpl3 implements Student { @Override public void read() { System.out.println("正在在背英语单词-3"); } } Student student3 = new StudentImpl3(); student3.read(); //4、匿名内部类,没有类的名称,必须要借助接口或者父类。 Student student4 = new Student() { @Override public void read() { System.out.println("正在在背英语单词-4"); } }; student4.read(); //5、用lambda表达式简化 //使用lambda表达式要满足,接口只有一个抽象方法。 Student student5 = ()->System.out.println("正在在背英语单词-5"); student5.read(); } } interface Student { void read(); } //1、普通实现类 class StudentImpl implements Student { @Override public void read() { System.out.println("正在在背英语单词-1"); } }
以上是关于lambda表达式学习的主要内容,如果未能解决你的问题,请参考以下文章