Java三元表達式,Java中Lambda表達式

 2023-10-06 阅读 29 评论 0

摘要:Lambda表達式想必大家都不陌生,jdk8的新特性,Lambda表達式需要函數式接口的支持,所謂函數式接口就是只有一個方法的接口,可以通過注解@FunctionalInterface來檢查該接口是否是函數式接口,如下圖左就是函數式接口,而右則不是。

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));}
}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/122887.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息