Lambda表達式想必大家都不陌生,jdk8的新特性,Lambda表達式需要函數式接口的支持,所謂函數式接口就是只有一個方法的接口,可以通過注解@FunctionalInterface來檢查該接口是否是函數式接口,如下圖左就是函數式接口,而右則不是。
下面來一個我們比較常見的例子,線程的例子,我們創建一個線程,一般會去重寫Runnable接口,原始的方法就是用匿名內部類,現在有了Lambda表達式,就顯得更加簡便
Java三元表達式?首先以創建一個線程為例子
package com.zhiying;public class MyTest {public static void main(String[] args) {//傳統的方法new Thread(new Runnable() {@Overridepublic void run() {System.out.println("hello world");}}).start();// 用Lambda表達式一new Thread(() -> System.out.println("hello")).start();// 用Lambda表達式二new Thread(() -> {System.out.println("hello");}).start();}
}
下面進行Lambda的詳細介紹
java選擇表達式,格式一:無參數,無返回值
package com.zhiying;@FunctionalInterface
public interface Hello {public void add();
}
package com.zhiying;public class MyTest {public static void main(String[] args) {Hello hello1 = () -> {System.out.println("hello world");};hello1.add();// 只有一句的時候可以省略{}Hello hello2 = () -> System.out.println("hello world");hello2.add();}
}
格式二:有一參數,無返回值
package com.zhiying;@FunctionalInterface
public interface Hello {public void add(int a);
}
package com.zhiying;public class MyTest {public static void main(String[] args) {// 只有一個參數的時候,()可以省Hello hello1 = (a) -> System.out.println(a);hello1.add(2);Hello hello2 = a -> System.out.println(a);hello2.add(3);}
}
Java函數?
格式三:有多參數,無返回值
package com.zhiying;@FunctionalInterface
public interface Hello {public void add(int a,int b);
}
package com.zhiying;public class MyTest {public static void main(String[] args) {Hello hello = (a,b) -> System.out.println(a + b);hello.add(1,2);}
}
下列表達式中值為0的是。格式四:有返回值
package com.zhiying;@FunctionalInterface
public interface Hello {public int add(int a,int b);
}
package com.zhiying;public class MyTest {public static void main(String[] args) {Hello hello1 = (a,b) -> {System.out.println("hello world");return a + b;};System.out.println(hello1.add(1,2));// 如果只有一條返回語句,return和{}可以都省略Hello hello2 = (a,b) -> a + b;System.out.println(hello1.add(2,2));}
}
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态