Lambda 表示式(Java8新特性)
阿新 • • 發佈:2020-12-29
一、Lambda 表示式簡介
實質上就是一個介面匿名內部類物件的簡化形式
- Lambda運算子:->
- 運算子左邊:Lambda表示式的引數列表(不需要寫引數型別,只寫引數名)
- 運算子右邊:Lambda表示式的實現體,相當於方法的主體
二、Lambda 表示式語法:
1.沒有引數,沒有返回值的抽象方法。沒有引數,小括號不能省略
() -> System.out.println("Hello Lambda");
2.有一個引數,沒有返回值;如果只有一個引數,引數後的小括號可以省略
x -> {System.out.println(“你好” + x);}
3.有多個引數沒有返回值
(x,y) -> System.out.println(x + y);
4.有多個引數,方法體有多條語句,有返回值;如果語句只有一條,大括號可以省略,
(x,y) -> {double pow = Math.pow(x,y); return pow;};
5.只有一個return語句,必須把return去掉
(x,y) -> Math.pow(x,y);
三、使用示例
public class Lambda示例 { public static void main(String[] args) { //1.沒有引數,沒有返回值 Demo1 d1 = ()->System.out.println("1.我沒有引數,也沒有返回值"); d1.test(); //2.有一個引數,沒有返回值 Demo2 d2 = (name)->System.out.println("2.你好,"+name); d2.sayHi("我是有一個引數的"); //3.多個引數,無返回值 Demo3 d3 = (a,b)->System.out.println("3."+a+b); d3.sum(2, 8); //4.有多個引數,方法體有多條語句,有返回值; Demo4 d4 = (s1,s2)->s1+s2; System.out.println(d4.getPow("4.hello", "world")); //5.只有一個return語句,必須把return去掉 Demo5 d5 = ()->"5.我是字串返回值"; System.out.println(d5.test()); } } interface Demo1{ public abstract void test(); } interface Demo2{ public abstract void sayHi(String name); } interface Demo3{ public abstract void sum(int a,int b); } interface Demo4{ public abstract String getPow(String s1,String s2); } interface Demo5{ public abstract String test(); }
執行結果: