java 8 與 retrolambda
TRANSCRIPT
Java 8 與 retrolambda
Justin Lin
http://openhome.cc
• Stream 從來源取出資料,來源可以是 …
– Collection, 例如 collection.stream()
– 陣列, 例如 Arrays.stream(…)
– 產生器, 例如 IntStream.generate(…)
– I/O, 例如 Files.lines(…)
– …
• Stream 上有 intermediate operation 與
terminal operation。
19
Retrolambda
28
https://github.com/orfjackal/retrolambda
• 改寫 bytecode 為可運行於 Java 7, 6, 5
• 目前支援 … – Lambda expressions
– Method references
– Try-with-resources statements
• 部份支援 … – Default methods
– Static methods on interfaces
• 採用方式 … – Command Line Application(結合 Ant)
– Maven Plugin
– Gradle Plugin
29
Command Line Application
• 從 Maven Centrol 下載 retrolambda.jar
30
Gradle
• Gradle Retrolambda Plugin
– JDK8
– Gradle 2.x
33
Java 8 API?
• LambdaJ
• Linq4j
• guava-libraries
• Joda-Time
• ThreeTen
• streamsupport
37
r Functional API
Stream API
New Date & Time API
想瞭解更多?
• Java Lambda Tutorial
• 解析 JDK8 Functional API
• Java 8 Patterns
• 認識 Gradle
• Retrolambda in Android
• Java 8 Friday: Let’s Deprecate Those
Legacy Libs
43