Java 8-eclipse-luna

16
Java 8 support in eclipse luna Matthias Köster - binaere-bauten gmbh 04.06.2014 @ Eclipse DemoCamp Hamburg

description

slides of the demo I gave at the eclipse luna democamp in Hamburg June 2014.

Transcript of Java 8-eclipse-luna

Page 1: Java 8-eclipse-luna

Java 8 support in eclipse luna

Matthias Köster - binaere-bauten gmbh04.06.2014 @ Eclipse DemoCamp Hamburg

Page 2: Java 8-eclipse-luna

Ich wollte Java 8 lernen (Scala geht so...)...aber kein Kunde will kann darf das schon verwenden

Die Alternative:DemoCamp Dezember 2013 Berlin

Kepler Java 8 support vorgestelltKein Quick Fix || Refactoring für LambdasContent assist fehlte teilweise

FazitJDT ist fast schon so gut wie jede Scala IDE ;-)

binaere bauten gmbh • matthias köster

Was bisher geschah...

Page 3: Java 8-eclipse-luna

Demo Time - stay tunedSharing the user „experience“ with you

binaere bauten gmbh • matthias köster

Und wie sieht es heute aus?

Page 4: Java 8-eclipse-luna

DemoCamp 2014 HamburgRC2 von eclipse luna

Quick Fix && Refactoring für SAM <-> LambdaContent assist besser, aber

Nicht für method handles

Faziteclipse still has to catch up

binaere bauten gmbh • matthias köster

Stand heute

Page 5: Java 8-eclipse-luna

ist schon in Java 7......und will kann darf kein Kunde einsetzen

...macht aber mehr Spaß mit Lambdas

Game of Live auf dem RaspPi...hab aber noch immer keinen RaspPi

...hat aber Spaß gemacht

JavaFX ist cool! echte JavaFX Demo kommt noch ;-)

binaere bauten gmbh • matthias köster

...und JavaFX/Java Embedded Hackathon

Page 6: Java 8-eclipse-luna

Java 8 is a big revolutionary stepdefault methodsVirtual extension methodsLambdas & SAMStream API

Buteclipse still has to catch up

binaere bauten gmbh • matthias köster

Summary

Page 7: Java 8-eclipse-luna

Thanks a lot for your attention!

fin

binaere bauten gmbh • matthias köster

Page 8: Java 8-eclipse-luna

InterfaceStatic methods

binaere bauten gmbh • matthias köster

public interface Comparator<T> {

public static <T…> Comparator<T> reverseOrder() {return Collections.reverseOrder();

}

}

Page 9: Java 8-eclipse-luna

Virtual extension methods

binaere bauten gmbh • matthias köster

public interface Iterable<T> {

default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } }

}

Page 10: Java 8-eclipse-luna

SAM interface

binaere bauten gmbh • matthias köster

public interface Comparable<T> {

public int compareTo(T o);

}

Page 11: Java 8-eclipse-luna

Lambda Expression

binaere bauten gmbh • matthias köster

List<String> names = Arrays.asList("one", "two", "three");

Collections.sort(names, (String o1, String o2) -> o2.compareTo(o1));

Page 12: Java 8-eclipse-luna

Lambda ExpressionVariable capture

binaere bauten gmbh • matthias köster

String prefix ="Hi "; // effectively final

names.forEach((String s) -> System.out.println(prefix + s));

prefix = ""; // not effectively final anymorenames.forEach(

(String s) -> System.out.println(prefix + s));

Page 13: Java 8-eclipse-luna

Method handles

binaere bauten gmbh • matthias köster

List<Integer> nums = Arrays.asList(10, 2, 3);

nums.sort(Integer::compareTo);

List<String> names = Arrays.asList("one", "two", "three");

names.forEach(System.out::println);

Page 14: Java 8-eclipse-luna

Type inference

binaere bauten gmbh • matthias köster

List<String> myList = Collections.emptyList();

Collections.sort(myList, (o1, o2) -> o2.compareTo(o1));

Page 15: Java 8-eclipse-luna

Stream API

binaere bauten gmbh • matthias köster

List<String> names = Arrays.asList("one", "two", "three");

int minSize = names.parallelStream().mapToInt(String::length).reduce(0, Integer::min);

OptionalInt minSize = names.parallelStream().mapToInt(String::length).min();

Path p = FileSystems.getDefault().getPath("/tmp/index.html");

Files.lines(p,Charset.forName("UTF-8")).forEach(System.out::println);

Page 16: Java 8-eclipse-luna

Game of Life Demo from Hackathon „JavaFX on Java SE Embedded“

I still don‘t have a Raspberry Pi but another team member won a

RaspPi and may be I get one from Santa

binaere bauten gmbh • matthias köster

JavaFX