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及时监控平台