ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Lamda表达式

2022-01-06 21:32:42  阅读:186  来源: 互联网

标签:Lamda did 接口 println FunInterface 表达式


Lambda表达式

  • λ是希腊字母表中排序第十一位的字母,英文名为Lambda。
  • 其实质是函数式编程
  • 使用 Lambda 表达式可以使代码变的更加简洁紧凑。
  • 避免匿名内部类定义过多
  • 去掉无意义的代码,留下核心的思维

语法

(params)->expression[表达式]

(params)->statement[语句]

(params)->{statements}

函数式接口(Functional Interface)

定义

  • 任何接口,若只包含唯一抽象方法,那么它就是函数式接口,对于函数式接口,可以使用Lambda表达式来创建对象。

特征

  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回了一个数值。

代码实现测试

interface FunInterface{
    void did(int a,double b);
}

public class Lamda {
    //静态内部类
    static class Lamda2 implements FunInterface{
        @Override
        public void did(int a,double b) {
            System.out.println("静态内部类实现接口方法");
        }
    }

    public static void main(String[] args) {
        //局部内部类
        class Lamda3 implements FunInterface{
            @Override
            public void did(int a,double b) {
                System.out.println("局部内部类实现接口方法");
            }
        }
        FunInterface l1=new Lamda1();
        FunInterface l2=new Lamda2();
        FunInterface l3=new Lamda3();
        //匿名内部类
        FunInterface l4=new FunInterface() {
            @Override
            public void did(int a,double b) {
                System.out.println("匿名内部类实现接口方法");
            }
        };
        //Lamda表达式
        FunInterface l5=(int a,double b)->{
            System.out.println("Lamda表达式1");
        };
        //省略参数类型
        FunInterface l6=(a,b)->{
            System.out.println("Lamda表达式2");
        };
        //若方法中只有一条语句,可省略中括号
        FunInterface l7=(a,b)-> System.out.println("Lamda表达式2");

        //输出查看
        l1.did(1,3.5);
        l2.did(1,3.5);
        l3.did(1,3.5);
        l4.did(1,3.5);
        l5.did(1,3.5);
        l6.did(1,3.5);
        l7.did(1,3.5);
    }
}

//实现类
class  Lamda1 implements  FunInterface{

    @Override
    public void did(int a,double b) {
        System.out.println("类实现接口方法");
    }
}

输出结果

类实现接口方法
静态内部类实现接口方法
局部内部类实现接口方法
匿名内部类实现接口方法
Lamda表达式1
Lamda表达式2
Lamda表达式2

标签:Lamda,did,接口,println,FunInterface,表达式
来源: https://www.cnblogs.com/ytdnf/p/15772983.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有