SlideShare uma empresa Scribd logo
1 de 16
Java 8 support
in eclipse luna
Matthias Köster - binaere-bauten gmbh
04.06.2014 @ Eclipse DemoCamp Hamburg
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 vorgestellt
Kein Quick Fix || Refactoring für Lambdas
Content assist fehlte teilweise
Fazit
JDT ist fast schon so gut wie jede Scala IDE ;-)
binaere bauten gmbh • matthias köster
Was bisher geschah...
Demo Time - stay tuned
Sharing the user „experience“ with you
binaere bauten gmbh • matthias köster
Und wie sieht es heute aus?
DemoCamp 2014 Hamburg
RC2 von eclipse luna
Quick Fix && Refactoring für SAM <-> Lambda
Content assist besser, aber
Nicht für method handles 
Fazit
eclipse still has to catch up
binaere bauten gmbh • matthias köster
Stand heute
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
Java 8 is a big revolutionary step
default methods
Virtual extension methods
Lambdas & SAM
Stream API
But
eclipse still has to catch up
binaere bauten gmbh • matthias köster
Summary
Thanks a lot for your attention!
fin
binaere bauten gmbh • matthias köster
Interface
Static methods
binaere bauten gmbh • matthias köster
public interface Comparator<T> {
public static <T…> Comparator<T> reverseOrder() {
return Collections.reverseOrder();
}
}
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);
}
}
}
SAM interface
binaere bauten gmbh • matthias köster
public interface Comparable<T> {
public int compareTo(T o);
}
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));
Lambda Expression
Variable 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 anymore
names.forEach(
(String s) -> System.out.println(prefix + s));
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);
Type inference
binaere bauten gmbh • matthias köster
List<String> myList = Collections.emptyList();
Collections.sort(myList, (o1, o2) -> o2.compareTo(o1));
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);
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

Mais conteúdo relacionado

Semelhante a Java 8-eclipse-luna

elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Visuelle Gestaltung und Testdatenentwicklung mit BizDataX
Visuelle Gestaltung und Testdatenentwicklung mit BizDataXVisuelle Gestaltung und Testdatenentwicklung mit BizDataX
Visuelle Gestaltung und Testdatenentwicklung mit BizDataXDragan Kinkela
 
C++ Dependency Management 2.0
C++ Dependency Management 2.0C++ Dependency Management 2.0
C++ Dependency Management 2.0Patrick Charrier
 
Our way to 19c - DOAG 2020
Our way to 19c - DOAG 2020Our way to 19c - DOAG 2020
Our way to 19c - DOAG 2020Torsten Kleiber
 
Atom Publishing Protocol
Atom Publishing ProtocolAtom Publishing Protocol
Atom Publishing ProtocolDirk Haun
 
REST Problems
REST ProblemsREST Problems
REST Problemspredic8
 
Funktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit SodiumFunktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit SodiumTorsten Fink
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Springdenschu
 
Exchange Server User Group Berlin | Meetup 2019-04-03
Exchange Server User Group Berlin | Meetup 2019-04-03Exchange Server User Group Berlin | Meetup 2019-04-03
Exchange Server User Group Berlin | Meetup 2019-04-03Thomas Stensitzki
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesQAware GmbH
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebSebastian Springer
 

Semelhante a Java 8-eclipse-luna (14)

elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09
 
JavaScript Performance
JavaScript PerformanceJavaScript Performance
JavaScript Performance
 
Chatbot Hackathon Slidedeck
Chatbot Hackathon SlidedeckChatbot Hackathon Slidedeck
Chatbot Hackathon Slidedeck
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Visuelle Gestaltung und Testdatenentwicklung mit BizDataX
Visuelle Gestaltung und Testdatenentwicklung mit BizDataXVisuelle Gestaltung und Testdatenentwicklung mit BizDataX
Visuelle Gestaltung und Testdatenentwicklung mit BizDataX
 
C++ Dependency Management 2.0
C++ Dependency Management 2.0C++ Dependency Management 2.0
C++ Dependency Management 2.0
 
Our way to 19c - DOAG 2020
Our way to 19c - DOAG 2020Our way to 19c - DOAG 2020
Our way to 19c - DOAG 2020
 
Atom Publishing Protocol
Atom Publishing ProtocolAtom Publishing Protocol
Atom Publishing Protocol
 
REST Problems
REST ProblemsREST Problems
REST Problems
 
Funktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit SodiumFunktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit Sodium
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Spring
 
Exchange Server User Group Berlin | Meetup 2019-04-03
Exchange Server User Group Berlin | Meetup 2019-04-03Exchange Server User Group Berlin | Meetup 2019-04-03
Exchange Server User Group Berlin | Meetup 2019-04-03
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im Web
 

Java 8-eclipse-luna

  • 1. Java 8 support in eclipse luna Matthias Köster - binaere-bauten gmbh 04.06.2014 @ Eclipse DemoCamp Hamburg
  • 2. 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 vorgestellt Kein Quick Fix || Refactoring für Lambdas Content assist fehlte teilweise Fazit JDT ist fast schon so gut wie jede Scala IDE ;-) binaere bauten gmbh • matthias köster Was bisher geschah...
  • 3. Demo Time - stay tuned Sharing the user „experience“ with you binaere bauten gmbh • matthias köster Und wie sieht es heute aus?
  • 4. DemoCamp 2014 Hamburg RC2 von eclipse luna Quick Fix && Refactoring für SAM <-> Lambda Content assist besser, aber Nicht für method handles  Fazit eclipse still has to catch up binaere bauten gmbh • matthias köster Stand heute
  • 5. 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
  • 6. Java 8 is a big revolutionary step default methods Virtual extension methods Lambdas & SAM Stream API But eclipse still has to catch up binaere bauten gmbh • matthias köster Summary
  • 7. Thanks a lot for your attention! fin binaere bauten gmbh • matthias köster
  • 8. Interface Static methods binaere bauten gmbh • matthias köster public interface Comparator<T> { public static <T…> Comparator<T> reverseOrder() { return Collections.reverseOrder(); } }
  • 9. 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); } } }
  • 10. SAM interface binaere bauten gmbh • matthias köster public interface Comparable<T> { public int compareTo(T o); }
  • 11. 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));
  • 12. Lambda Expression Variable 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 anymore names.forEach( (String s) -> System.out.println(prefix + s));
  • 13. 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);
  • 14. Type inference binaere bauten gmbh • matthias köster List<String> myList = Collections.emptyList(); Collections.sort(myList, (o1, o2) -> o2.compareTo(o1));
  • 15. 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);
  • 16. 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