程式狂想筆記

一個攻城師奮鬥史

0%

Java Lambdas 筆記

寫到一半沒寫完。

一直不太了解 Java 使用 Lambdas,但每次學久久沒碰後都忘記要怎麼用,Java Lambdas 不像 JavaScript 的 Lambdas 難使用,Java 那邊還要了解 Predirect 類似這些東西

一直不太能接受 Lamdbas 為什麼能同等 Predicate

  1. 了解為什麼 Java 的 Interface 可以用 Lamdbas 使用?

因為 @FunctionalInterface關係,可以看篇部分关于Java Lambda表达式看这一篇就够了,裡面有簡單範例。

那些 Interface 可以用 Lamdbas ,看以看官方文件FunctionalInterface (Java Platform SE 8 )。還滿多可以用的。

  1. 為什麼 Lamdbas 知道你要用的裡面哪個Method?

一般我們建立 Tread 需要實立 Runabble 介面,我們都知道會跑 Runable的 run ;一般 Predicate 介面,知道是跑 test。奇怪一個 interface 怎麼知道我要跑哪個 method呢?

其實我有一個很簡單的想法,我們會發現 Runnable 和 Predicate 透過實例 Method 去呼叫,如: ArrayList.removeIf( Predicate) 有實立方法,裡面 removeIf只會呼叫test,就這麼簡單。 但是不會有呼叫多個 Methods嗎?應該是不會的,我目前看這些 Interface 實立 Method 時候都是只會呼叫一個,也許這也是程式優良的地方,單一原則。

知道以上幾點,就不會懷疑自己lamdbas 會跑哪一個 method 就不會想太多。

Lambda Expressions (The Java™ Tutorials > Learning the Java Language > Classes and Objects)

六角鼠年鐵人賽 Week 16 - Spring Boot - 番外篇 Java 8 Lambda Tutorial - HackMD

Exception 處理

java 8 lambda表达式中的异常处理 - flydean - 博客园 備份圖

learn-java-streams/lambda-exception at master · ddean2009/learn-java-streams · GitHub