必威体育Betway必威体育官网
当前位置:首页 > IT技术

Lambda表达式

时间:2019-10-30 02:45:49来源:IT技术作者:seo实验室小编阅读:86次「手机版」
 

lambda表达式

本质上是一个匿名的方法:

先看下面这个例子,一个传统的方法

`public int add(int x,int y){
     return x+y;
 }`

转换为lambda之后就是下面这个样子

(int x,int y)->x+y  //表达式
(int x,int y)->{return x+y};//语句块

lAMDba表达式的组成:参数列表,箭头,以及一个语句块或者是表达式. 如下

()->{}

()为参数列表,参数的类型可以省略,java编译器可以自动推断. 如果只有一个参数且可以被Java推断出类型,那么参数列表的括号也可以省略.

Lambda表达式的类型叫做”目标类型”,他是一个”函数接口”(定义:一个接口,如果只有一个显式声明的抽象方法,那么它就是一个函数接口。一般用@FunctionalInterface标注出来(也可以不标)。)

所以可以将Lambda表达式为一个函数接口赋值,如下

Runable接口就是一个函数接口,因为他只有一个显示声明的抽象run方法.所以可以如下使用lambda表达式.

Runable r1 = ()->{System.out.println("motian")};

一个λ表达式只有在转型成一个函数接口后才能被当做Object使用。

所以不能如下使用:

System.out.println(()->{System.out.println("motian")});

必须将先将Lambda转型如下

System.out.println((Runable)()->{System.out.println("motian")});

一个Lambda可以有多个目标的类型(函数接口),只要函数匹配成功就行.但至少应该有一个.

所以如下是可以的

Runnable r1 =() -> {System.out.println("mo");}; 
MyRunnable2 r2 = () -> {System.out.println("tian");}; 

应用

1.λ表达式主要用于替换,内部匿名类,各种回调,比如事件响应器、传入Thread类的Runnable等。如:

       Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    System.out.println("mo");
                }
            }
        });
        //可以如下书写    
        Thread lambda = new Thread(()->System.out.println("tian"));

2.Lambda表达式与集合类批处理操作

未使用Lambda表达式的的集合迭代操作

for(String str:list){
    System.out.println(str);
}

使用后可以调整为

list.foreach(str->{System.out.println(str)})

未完待续。。。。

文章最后发布于: 2018-06-23 22:18:34

相关阅读

用matlab计算连续函数卷积的表达式

原文地址: https://www.computationalimaging.cn/2018/11/matlab.html卷积计算起来较为繁琐, 若能够用matlab辅助计算则会简单很

JAVA 正则表达式 (超详细)

https://www.cnblogs.com/xyou/p/7427779.html(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可

笔记9:EL表达式

EL表达式 1. 概念:Expression Language 表达式语言 2. 作用:替换和简化jsp页面中java代码的编写 3. 语法:${表达式} 4. 注意: * jsp

IK表达式使用心得(IKExpression)

前提:我用的jar包是:ik-expression-2.1.2.jar,一定要注意版本不同的jar,对应的xml的名称也不一样!!!! 1.创建xml:名称为:IKExpression.cfg.x

JSP中EL表达式的用法详解(必看篇)

转自:https://www.jb51.net/article/105314.htmEL 全名为Expression LanguageEL 语法很简单,它最大的特点就是使用上很方便。接下来

分享到:

栏目导航

推荐阅读

热门阅读