Lamda表达式详解

Lamda表达式详解Lamda表达式1、λ希腊字母表中排序第十一位的字母,英语名称为Lamda2、避免匿名内部类定义过多3、可以让你的代码看起来很简洁4、去掉了一堆没有意义的代码,留下核心的逻辑3、其实质属于函数式编程的概念(params)->expression[表达式](params)->statement[语句](params)->{statements}a->System.out.println(“ilikelamda–>”+a)newTh

大家好,又见面了,我是你们的朋友全栈君。

Lamda表达式

在这里插入图片描述

1、λ 希腊字母表中排序第十一位的字母,英语名称为 Lamda
2、避免匿名内部类定义过多
3、可以让你的代码看起来很简洁
4、去掉了一堆没有意义的代码,留下核心的逻辑
3、其实质属于函数式编程的概念

(params)-> expression[表达式]
(params) -> statement[语句]
(params) -> {statements}

a -> System.out.println("i like lamda-->"+a)

new Thread (()->System.out.println(“多线程学习。。。。”)).start();

怎么理解

1、理解Functional interface(函数式接口)是学习java8 lamda表达式的关键所在。

2、函数式接口的定义:

  • 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
public interface Runnable{ 
   
	public abstract void run();
}
  • 对于函数式接口,我们可以通过lamda表达式来创建该接口的对象

代码推导λ表达式

package com.haiyang.lamda;
public class TestLamda01 { 

//3、静态内部类,同样实现ILike接口
static class Like2 implements ILike{ 

@Override
public void lamda() { 

System.out.println("i like lamda2");
}
}
public static void main(String[] args) { 

ILike like = new Like();
like.lamda();
like = new Like2();
like.lamda();
//4、局部内部类
class Like3 implements ILike{ 

@Override
public void lamda() { 

System.out.println("i like lamda3");
}
}
like = new Like3();
like.lamda();
//5、匿名内部类,没有类的名称。必须借助接口或者父类
like = new ILike() { 

@Override
public void lamda() { 

System.out.println("i like lamda4");
}
};
like.lamda();
//6、lamda表达式
like = ()->{ 

System.out.println("i like lamda5");
};
like.lamda();
}
}
//1、定义一个只有一个抽象方法的接口
interface ILike{ 

abstract void lamda();
}
//2、实现类
class Like implements ILike{ 

@Override
public void lamda() { 

System.out.println("i like lamda1");
}
}

输出:
在这里插入图片描述

带一个参数的Lamda简化

package com.haiyang.lamda;
public class TestLamda02 { 

public static void main(String[] args) { 

ILive live = null;
//Lamda简化
live = (int a)->{ 

System.out.println("I live you"+a);
};
live.live(1);
//Lamda简化参数类型
live = (a)->{ 

System.out.println("I live you"+a);
};
live.live(2);
//Lamda简化括号
live = a->{ 

System.out.println("I live you"+a);
};
live.live(3);
//Lamda简化花括号(只有一条语句时)
live = a->System.out.println("I live you"+a);
live.live(4);
}
}
interface ILive{ 

abstract void live(int a);
}

输出:
在这里插入图片描述

带多个参数的Lamda简化


package com.haiyang.lamda;
public class TestLamda02 { 

public static void main(String[] args) { 

ILive live = null;
//Lamda简化
live = (int a,int b)->{ 

System.out.println("I live you"+a+b);
};
live.live(1,1);
//Lamda简化参数类型(要去掉就要都去掉)
live = (a,b)->{ 

System.out.println("I live you"+a+b);
};
live.live(2,2);
//Lamda简化花括号(只有一个语句时)
live = (a,b)->System.out.println("I live you"+a+b);
live.live(3,3);
}
}
interface ILive{ 

abstract void live(int a,int b);
}

输出:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130916.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 秒杀多线程第四篇 一个经典的多线程同步问题

    秒杀多线程第四篇 一个经典的多线程同步问题

  • CListCtrl详细使用方法

    CListCtrl详细使用方法以下未经说明,listctrl默认view风格为report相关类及处理函数MFC:CListCtrl类SDK:以“ListView_”开头的一些宏。如ListView_InsertColumnCListCtrl风格LVS_ICON:为每个item显示大图标LVS_SMALLICON:为每个item显示小图标LVS_LIST:显示一列带有小图标的i

  • Android触摸屏事件派发机制详解与源码分析三(Activity篇)

    Android触摸屏事件派发机制详解与源码分析三(Activity篇)PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!【工匠若水http://blog.csdn.net/yanbober】该篇承接上一篇《Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)》,阅读本篇之前建议先阅读。1背景还记得前面两篇从Android的基础最小元素控件(View)到ViewGr

  • 惠普硬盘型号怎么看_惠普电脑序列号查询真伪

    惠普硬盘型号怎么看_惠普电脑序列号查询真伪大家都知道电脑使用起来非常方便,但遇见硬盘序列号怎么看的时候就非常头疼了,如果你是第一次遇到硬盘序列号怎么看,怎么样才能快速解决硬盘序列号怎么看带来的烦恼呢?小编为大家收集了很多关于硬盘序列号怎么看问题的解决方法,下面请看具体的解决方法步骤:如何查看电脑硬盘序列号问:惠普电脑的XP系统答:第一步单击【开始】→【运行…】,输入cmd第二步输入diskpart,按回车键第三步输入list…

  • assert函数解析[通俗易懂]

    assert函数解析[通俗易懂]一、assert是宏明确一点:在C中,ASSERT是宏而不是函数。assert()是一个调试程序时经常使用的宏。在程序运行时它计算括号内的表达式。如果表达式为FALSE(0),程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常用来判断程序中是否出现了明显非法的数据,如果出现就终止程序以免导致严重后果,同时反馈错误发生“地点”。

  • oracle 11g 安装闪退问题[通俗易懂]

    oracle 11g 安装闪退问题[通俗易懂]oracle安装时闪退问题今天碰到一个很奇怪的问题,在安装oralce11g时奇怪闪退,本地安装好好的,到服务器安装oralce就闪退,这个时候不要慌,先看看错误日志路径默认都会在C盘,这个是安装的日志C:\Users\用户名\AppData\Local\Temp\OraInstall2021-04-30_04-44-48PMUsingparamFile:C:\database\install\oraparam.iniCheckingmonitor:mustbec

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号