博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习——JDK1.8新特性lambda表达式
阅读量:3942 次
发布时间:2019-05-24

本文共 2218 字,大约阅读时间需要 7 分钟。

Java学习——JDK1.8新特性lambda表达式

今天我们来学习一下JDK1.8的一个新特性——lambda表达式,lambda表达式的产生其实是为了简化代码的,我们来看下lambda的推导过程:

外部类—>静态内部类—>局部内部类—>匿名内部类—>lambda

1.外部类:最开始我们使用外部类

//外部接口(函数式接口);函数式接口的意思式,接口中只有一个方法interface Ilike{    void like();}//1.外部类class Like implements Ilike{    @Override    public void like() {        System.out.println("lambda----->01");    }}public class Lambda {    public static void main(String[] args) {        //实例化外部类        Like l = new Like();        //调用方法        l.like();    }}//输出: lambda----->01

2.静态内部类:然后我们为了简化,将外部类放到类的内部来,并加上static关键字就成了静态内部类

//外部接口(函数式接口);函数式接口的意思式,接口中只有一个方法interface Ilike{    void like();}public class Lambda {    //2.静态内部类类    static class Like implements Ilike{        @Override        public void like() {            System.out.println("lambda----->02");        }    }        public static void main(String[] args) {        //实例化外部类        Like l = new Like();        //调用方法        l.like();    }}//输出: lambda----->02

3.局部内部类:然后我们还是觉得不够简单,就把类放到方法里,形成了局部内部类

//外部接口(函数式接口);函数式接口的意思式,接口中只有一个方法interface Ilike{    void like();}public class Lambda {    public static void main(String[] args) {        //3.局部内部类类        class Like implements Ilike{            @Override            public void like() {                System.out.println("lambda----->03");            }        }        //实例化外部类        Like l = new Like();        //调用方法        l.like();    }}//输出: lambda----->03

4.匿名内部类:然后我们突然想到这个接口只有一个方法,可以使用匿名内部类简化代码:

//外部接口(函数式接口);函数式接口的意思式,接口中只有一个方法interface Ilike{    void like();}public class Lambda {    public static void main(String[] args) {        //匿名内部类        new Ilike() {            @Override            public void like() {                System.out.println("lambda----->04");            }        };        like.like();    }}//输出: lambda----->04

这样虽然简单,但是我们JDK1.8之后引入了一个新特性可以简化匿名内部类:lambda

5.lambda表达式:

//外部接口(函数式接口);函数式接口的意思式,接口中只有一个方法interface Ilike{    void like();}public class Lambda {    public static void main(String[] args) {        //lambda表达式        Ilike like=()->{System.out.println("lambda----->04");};        like.like();    }}

如果说只有一条实现语句,我们还可以将大括号去掉:

Ilike like = ()-> System.out.println("lambda------>04"); like.like();

当然lambda需要前提:必须是函数式接口(只有一个方法的接口)

转载地址:http://uaiwi.baihongyu.com/

你可能感兴趣的文章
3.7.4 - Indexing and Slicing Strings
查看>>
3.7.5 - Modifying Strings
查看>>
3.7.6 - String Methods
查看>>
3.8 - Using the Print Function
查看>>
3.9.1 - Lists in Python
查看>>
3.9.2 - Lists - Adding and Removing Objects
查看>>
3.9.3 - Sorting Lists
查看>>
3.10 - Maya Commands: ls
查看>>
3.11 - Dictionaries in Python
查看>>
3.12 - Tuples in Python
查看>>
4.4 - For Loops
查看>>
4.2.2 - Logical and/or Operators
查看>>
Lesson 4 Part 2 Softmax Regression
查看>>
文章中运用到的数学公式
查看>>
Projective Dynamics: Fusing Constraint Projections for Fast Simulation
查看>>
从2D恢复出3D的数据
查看>>
glm 中 数据类型 与 原始数据(c++ 数组)之间的转换
查看>>
Derivatives of scalars, vector functions and matrices
查看>>
the jacobian matrix and the gradient matrix
查看>>
VS2010 将背景设为保护色
查看>>