zoukankan      html  css  js  c++  java
  • Lambda表达式

    Lambda表达式(java语言中的运用)

    注 :java 1.8 版本以上

    Lambda表达式简介

    Lambda 表达式(lambda expression)是一个匿名函数,

    Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction)

    ,是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。

    引用于 “百度百科”

    个人见解

    Lambda 表达式,也可称为闭包,允许把函数作为一个参数,使代码更简洁

    Lambda表达式的简单写法

    不需要参数,返回值为10时

    () -> 10;
    

    接收一个参数(数字类型参数), 返回其4倍的值

    x -> 4*x;
    

    接收两个参数(数字类型参数), 返回两数的和

    (x,y) -> x+y;
    

    接收两个int类型的整数,返回他们的除数

    (int x,int y) -> x/y;
    

    接收一个String类型的对象,无返回值,直接在控制台打印字符串(可以看成是void类型的方法)

    (String s) -> System.out.println(s);
    

    Lambda表达式再具体实战中的运用

    按钮的点击事件

    没有运用Lambda表达式

    package Lee;
    
    /**
     * 一个 Button 的点击事件
     */
    btn.addActionListener(new ActionListener(){
    	public void actionPerformed(ActionEvent actionEvent){
    		System.out.println("我被点击了!");
    	}
    });
    

    运用Lambda表达式

    package Lee;
    
    /**
     * 一个 Button 的点击事件
     */
    btn.addActionListener( actionEvent -> {
    	System.out.println("我被点击了!");
    });
    

    线程的启动方法

    没有运用Lambda表达式

    package Lee;
    
    /**
     * 一个 线程的启动
     */
    Runnable runnable = new Rannable(){
    	@Override
    	public void run(){
    		System.out.println("线程启动");
    	}
    };
    

    运用Lambda表达式

    package Lee;
    
    /**
     * 一个 线程的启动
     */
    Runnable runnable = () -> System.out.println("线程启动!");
    

    Lambda表达式优缺点

    优点

    Lambda表达式写法简单,可以大大的减少"冗余"代码量

    缺点

    Lambda表达式对代码的可读性有一定的影响,代码越长其可读性也就越差

    Lambda表达式难以调试,无法输出到日志信息到控制台,很难快速定位问题所在

    总结

    Lambda表达式,不是过于重要,而且缺点也明显,在实际开发中很影响产品的二次开发,

    而且需要jdk1.8及以上的支持,所以一些公司可能还不支持jdk版本,所以Lambda表达式,

    达到了解、看懂其基础写法即可,或者在上课,作业中 "装B" 使用即可!

    注: 以上为个人见解,如需了解更多,请到 “BaiDu” ~~~

  • 相关阅读:
    MySQL 性能监控4大指标——第二部分
    mysql 复制A表 到B表;insert into select * from table
    spring boot整合mybatis查询数据库返回Map字段为空不返回解决
    sprinbboot 热部署 造成类加载器 不一致问题
    springboot 整合dubbo 消费模块引入springboot 之后自动注入jdbc 模块导致启动报错问题
    基于Cent os 云服务器中SVN 服务器的搭建---具体实践是可行的 一次备注便于后续查找
    centos7 yum安装配置redis 并设置密码
    ccenteros 部署 redis
    linux ccenteros 部署 redis
    mybatis 插入日期类型精确到秒的有关问题
  • 原文地址:https://www.cnblogs.com/JQ04/p/13521418.html
Copyright © 2011-2022 走看看