Java8
By Franck Benault
Created 27/06/2014
Last update 21/11/2014
Java8 plan
Historic of Java
● Past
– Java 1.0 (1996)
– Java 6 (2006)
● Present
– Java7 (2011)
– Java8 (18/03/2014)
● Future
– Java9 (09/2016?)
– Java10
Java8 : content
● Java8 JSR 337
– JSR 335 lambda
– JSR 308 Annotation on Java types
– JSR 310 New date time api
– Optional
Java8 : optional
● Optional : wrapper of Object to avoid the
nullPointerException management
– Still exist in Guava (but not fully compliant with java8
version
● Samples :
Person p = PersonQueries.findByName("Sophie");
Optional<Person> wrapper = Optional.ofNullable(p);
//get now the person or get null
Person p = wrapper.orElse(null);
Java8 : new java date API
● Close to Joda-time library
● Immutable classes (Thread safe)
– LocalDate
– LocalTime
– LocalDateTime
– Instant
– ZonedDateTime
– Period
– Duration
Java8 : date API example1
● Immutable classes (Thread safe)
– LocalDate
● Creation (no public constructor)
– LocalDate date = LocalDate.of(2015,
Month.NOVEMBER, 17);
– LocalDate date2 = LocalDate.now();
● Usage (immutable)
– date = date.minusWeeks(2);
How to use Java8 : EDI
● Intellj IDEA
● NetBeans IDE since 7.3
● Eclipse
– Kepler Release2
– Luna (4.4.0)
Java8 links
● My examples
– https://github.com/franck-benault/test-java8
Java8 links
● My examples
– https://github.com/franck-benault/test-java8