日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.22 Lambda表达式的3种简写方式

發布時間:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.22 Lambda表达式的3种简写方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用 Lambda 表達式是為了簡化程序代碼,Lambda 表達式本身也提供了多種簡化形式,這些簡化形式雖然簡化了代碼,但客觀上使得代碼可讀性變差。本節介紹 Lambda 表達式的幾種簡化形式。

省略參數類型

Lambda 表達式可以根據上下文環境推斷出參數類型。calculate 方法中 Lambda 表達式能推斷出參數 a 和 b 是 int 類型,簡化形式如下:

public static Calculable calculate(char opr) {Calculable result;if (opr == '+') {// Lambda表達式實現Calculable接口5 result = (a, b) -> {return a + b;};} else {// Lambda表達式實現Calculable接口10 result = (a, b) -> {return a - b;};}return result; }

代碼第 5 行和第 10 行是result = (int a, int b) -> {代碼的簡化寫法,其中 a 和 b 是參數。

省略參數小括號

如果 Lambda 表達式中的參數只有一個,可以省略參數小括號。修改 Calculable 接口中的 calculateInt 方法,代碼如下。

// 可計算接口 @FunctionalInterface public interface Calculable {// 計算一個int數值int calculateInt(int a); }

其中 calculateInt 方法只有一個 int 類型參數,返回值也是 int 類型。調用 calculateInt 方法代碼如下:

public static void main(String[] args) {int n1 = 10;// 實現二次方計算Calculable對象Calculable f1 = calculate(2);// 實現三次方計算Calculable對象Calculable f2 = calculate(3);// 調用calculateInt方法進行加法計算System.out.printf("%d二次方 = %d \n", n1, f1.calculateInt(n1));// 調用calculateInt方法進行減法計算System.out.printf("%d三次方 = %d \n", n1, f2.calculateInt(n1)); } /** * 通過冪計算 * * @param power 冪 * @return 實現Calculable接口對象 */ public static Calculable calculate(int power) {Calculable result;if (power == 2) {// Lambda表達式實現Calculable接口// 標準形式25 result = (int a) -> {return a * a;};} else {// Lambda表達式實現Calculable接口// 省略形式 31 result = a -> {return a * a * a;};}return result; }

上述代碼第 25 行和第 31 行都是實現 Calculable 接口的 Lambda 表達式。代碼第 25 行是標準形式沒有任何的簡化。代碼第 31 行省略了參數類型和小括號。

輸出結果為:

10二次方 = 100 10三次方 = 1000

省略return和大括號

如果 Lambda 表達式體中只有一條語句,那么可以省略 return 和大括號,代碼如下:

public static Calculable calculate(int power) {Calculable result;if (power == 2) {// Lambda表達式實現Calculable接口// 標準形式result = (int a) -> {return a * a;};} else {// Lambda表達式實現Calculable接口// 省略形式12 result = a -> a * a * a;}return result; }

上述代碼第 12 行是省略了 return 和大括號,這是最簡化形式的 Lambda 表達式了,代碼太簡潔了,但是對于初學者而言很難理解這個表達式。

總結

以上是生活随笔為你收集整理的1.22 Lambda表达式的3种简写方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。