函数式编程 lambda表达式
函數式編程 lambda表達式
?
從JDK1.8之后為了簡化程序的開發,專門提供了lambda表達式的支持,可以簡化編程中接口的復雜操作:
?
范例: 觀察以下傳統開發中的問題
| public interface IMessage { ? ???? public void send(String str); } ? package org.interfaces; ? public class IMessageImpl implements IMessage{ ? ???? @Override ???? public void send(String str) { ????????? // TODO Auto-generated method stub ????????? System.out.println("消息發送"+str); ???? } ? } ? package org.interfaces; ? public class Test { ? ???? ???? public static void main(String[] args) { ????????? ????????? IMessage? msg=new IMessageImpl(); ????????? ????????? msg.send("hello"); ???? } } ? |
?
發現以上的傳統開發,只是實現一個簡單的功能同樣也需要很多類的支持
?
接下來:使用lambda 表達式
| public static void main(String[] args) { ????????? ????????? IMessage msg=(str)->{ ?????????????? ?????????????? System.out.println("發送的消息"+str); ?????????????? ????????? } ; ????????? ????????? msg.send("hello"); ???? } |
?
?
整個程序都變得很簡單了,其實只用了一句話就完成功能輸出,對于Lambda表達式也是存在限制的:
?
接口中只能存在一個方法?
?
Lambda表達式的格式:
?
1 方法沒有參數: ()->{};
?
2 方法有參數 : (參數1,參數2 ,參數3)->{};
?
3 如果只有一行語句: (參數1,參數2 ,參數3)->語句;
?
?
范例: 沒有參數的方式
?
| public interface IMessage { ? ???? public void send(); } ? |
?
| ???? public static void main(String[] args) { ????????? ????????? IMessage msg=()->{ ?????????????? ?????????????? System.out.println("發送的消息"); ?????????????? ????????? } ; ????????? ????????? msg.send(); ???? } |
?
?
總結
以上是生活随笔為你收集整理的函数式编程 lambda表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 公积金存缴比例 住房公积金的缴存比例是多
- 下一篇: vue如何实现上传图片组件