Java程式設計師如何用lambda表示式花式作死

2021-08-28 18:50:06 字數 1865 閱讀 3149

cif

(cond1,()

->).

celseif((

)-> cond2,()

->).

celseif

(cond3,()

->).

celse((

)->

);

採用構造器配合方法鏈來實現,省略空指標檢測,主要類如下:

/**

* 整個語句塊的構造器

*/class

ifbuilder

/** * @param predicate 無條件求值的斷言

* @param action 要執行的動作

* @return 同下面 cif

*/public

static ifbuilder cif

(boolean predicate, runnable action)

/** * @param predicate 條件求值的斷言

* @param action 要執行的動作

* @return 如果斷言求值為 true, 就返回預設什麼都不做的 builder,否則返回具有後續 elseif 和 else 功能的 builder

*/public

static ifbuilder cif

(supplier

predicate, runnable action)).

get():

newifbuilder()

).get():

this;}

@override

public ifbuilder celseif

(boolean b, runnable r)

@override

public

void

celse

(runnable r)).

get())

.get()

;}};

}/* 對斷言條件求值的預設 else if, 無動作*/

public ifbuilder celseif

(supplier

b, runnable r)

/* 對斷言無條件求值的預設 else if, 無動作*/

public ifbuilder celseif

(boolean b, runnable r)

/* 預設 else, 無動作*/

public

void

celse

(runnable r)

}

示例**如下,其中 i 和 j 每次用隨機數生成

for

(int x =

0; x <

10; x++))

.celseif((

)-> i < j,()

->).

celseif

(i > j,()

->).

celse((

)->);

}

示例輸出:

-3 -1 : i < j

3 -3 : i > j

2 -2 : i > j

0 -1 : i == 0 || j == 0

-1 -2 : i > j

-1 -1 : i = j

-1 -2 : i > j

0 0 : i == 0 || j == 0

2 1 : i > j

2 1 : i > j

寫著玩的**,寫完自己都想吐槽了。看著用了一些高階的寫法,不僅完全沒有解決什麼問題,而且還帶來了很大的**複雜性。

程式設計師如何用「心「表白(結尾附原始碼)

有任何想要討論和學習的問題可聯絡我 zhuyc vip.163.com。四 案例原始碼 本案例更加適合在移動端豎屏開啟,本身也支援自適應,在選擇素材時需要注意一下比例。新增頁面和元件的具體用法檢視h5 index.js 在新增頁面或元件時,可以在其中定義通用的樣式 將選擇器名稱與引數一致即可生效 頁...

如何面試php程式設計師,如何面試PHP程式設計師

乙個包含中英文的字串如何獲得它的自然長度 看看ta是否有encoding的知識和意識 問一問什麼是orm,有時候會問這個詞的英文全稱是什麼,問問ta對於orm有什麼個人的看法?看看ta學習細不細,有沒有技術判斷,php開發人員應該知道什麼時候使用orm 問一問假如ta要自己去實現乙個framewor...

如何面試程式設計師

面試對於大多數開發人員來說是一項很基本的技能。一次失敗的招聘會造成很嚴重的長期的後果,二流的人會把三流的人帶進公司 一流人才僱一流人才,二流人才僱三流人才 另一方面,把優秀的應聘者拒之門外更是一種傷害。一場技術面試至少包括三部分。首先驗證簡歷的真實性,然後評估應聘者的經驗價值,最後測試應聘者的技術能...