認識 Lambda/Closure(7)JDK8 Lambda 語法
By caterpillar | 2013/07/02終於要來介紹 JDK8 Lambda 語法了。在 JDK8 中要表示 (x -> x * 2),基本上,可以寫為以下的形式: (Integer x) -> x + 2
【Guava 教學】(4)實作 toString、equals 與 hashCode 的幫手
By caterpillar | 2013/06/26除了產生 toString 的幫手之外,Guava 在比較物件時也提供了 Objects.equal,這東西與 JDK7 的 Objects.equals 是相同作用的,如果你使用 JDK6 或之前的版本,則可以試試 Guava 的。怎麼用呢?因為 Objects.equal 蠻簡單的,單純解釋它沒意思,重點還是在於怎麼寫出正確的 equals 比較重要...
認識 Lambda/Closure(6)一級函式與 Lambda 演算
By caterpillar | 2013/06/25為什麼一級函式也稱為 Lambda?在回答這個問題之前,我們必須認識一下 Lambda 演算(也可以寫成 λ 演算)。簡單地說,在 λ 演算中,函式是僅帶一個參數的運算式。參數也可以接受帶有一個參數的函式。λ 演算中的函式是匿名的。
【Guava 教學】(3)高階排序概念的實現
By caterpillar | 2013/06/20Guava 看來只是個程式庫,但它實際上包括了不少高階觀念,先前的兩篇文章 從避免使用 null 開始、命名明確的條件檢查,其實也都是在談這些高階觀念,想善用 Guava,瞭解這些觀念是必要的,不然,只是當個程式庫來使用,就沒辦法用得順手,這樣是有點可惜了。
認識 Lambda/Closure(5)Java 的稻草人提案
By caterpillar | 2013/06/18終於要開始討論 Java 的 Lambda/Closure 了!不過這邊會先討論 2009 年提出的舊草案,討論這份舊草案,有助於我們瞭解為什麼 Lambda/Closure 會演變至今天 JDK8 所採取的形式。