Slide 1

Slide 1 text

What’s new in Java N Eugenio Marletti @workingkills

Slide 2

Slide 2 text

Language: 7-ish ∞ diamond operator string switch multicatch K try-with-resources API: 6-ish K Throwable.addSuppressed() L ForkJoinPool JVM: 6 before N

Slide 3

Slide 3 text

after N “ we’re looking forward to tracking the Java language more closely while maintaining backward compatibility ”

Slide 4

Slide 4 text

lambdas method references after N Language: 8-ish ∞ N default & static methods in interfaces repeatable annotations API: 8-ish N streams functions optionals missing: date/time? (plz support lib!) JVM: 6 (still no invokedynamic)

Slide 5

Slide 5 text

lambda method reference anonymous class new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 doSomething(view);
 }
 } view -> doSomething(view) this::doSomething

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Alternatives Keep doing what you’re doing Retrolambda Kotlin

Slide 8

Slide 8 text

android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } Getting started: developer.android.com/preview/j8-jack.html TL;DR 1. setup a project for the N preview 2. add this Gradle config:

Slide 9

Slide 9 text

Slides: bit.ly/new-java-n Eugenio Marletti @workingkills Questions? ktnxbye