IT教程 ·

Lambda表达式

分布式体系一致性问题与Raft算法(上)

Lambda表达式

从JDK8入手下手(JDK1.8),加入了Lambda表达式的重量级新特征,为我们打开了新世界的大门。

 

匿名内部类

一方面匿名内部类能够省去完成类的定义;但是另一方面,匿名内部类的语法,确切太庞杂了。

public class Demo {
    public static void main(String[] args) {
        new Thread(new Runnable(){
            @Override
            public void run() {
                System.out.println("建立了新的线程");
            }
        }).start();
    }
}

我们能够用Lambda表达式去简化匿名类中一些冗余的代码,使得一样的表达在Lambda语法中越发简朴。

Lambda规范花样

由三部份构成:a.一些参数 b.一个箭头 c.一段代码

花样:

(参数列表)  ~> {一些重写要领的代码}

( ):接口中笼统要领的参数列表,没有参数,就空着;有参数就写出参数,多个参数用逗号断绝。

~>:通报的意义,把参数通报给要领体{ }。

{ }:重写接口笼统要领的要领体。

上述代代码能够简化为以下:

new Thread(()->{
                System.out.println("建立了新的线程");
              }
        ).start();

接下来另有一个例子以下,给定一个Cook接口,运用Lambda表达式来在要领中通报建立的接口实例:

public interface Cook {
    void makeFood();
}
public class Demo {
    public static void main(String[] args) {
        invokeCook(()->{
            System.out.println("饭做好了");
        });
    }
    public static void invokeCook(Cook cook){
        cook.makeFood();
    }
}

Lambda表达式:是可推导,能够省略的

通常依据上下文推导出来的内容,都能够省略誊写

能够省略的誊写内容以下:

1.(参数列表):括号中参数列表的数据范例,能够省略不写。

2.(参数列表):括号中的参数只要一个的,那末范例和()都能够省略。

3.{一些代码}:假如{}中的代码只要一行,不管是不是有返回值,都能够省略)({},returm,分号)

注重:要省略{},return,分号必需一同省略。

实例以下:

public interface Cook {
    String makeFood(String str,String str1);
}
public class Demo {
    public static void main(String[] args) {
        invokeCook((str,str1)->
            str + str1
        );
    }
    public static void invokeCook(Cook cook){
        cook.makeFood("生日","蛋糕");
    }
}

Lambda表达式就说到这了~

 

Centos7.X 搭建Prometheus+node_exporter+Grafana及时监控平台

参与评论