Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

JAVA 8 : Migration et enjeux stratégiques en entreprise

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Oop lecture9 13
Oop lecture9 13
Chargement dans…3
×

Consultez-les par la suite

1 sur 111 Publicité

JAVA 8 : Migration et enjeux stratégiques en entreprise

Télécharger pour lire hors ligne

La sortie de Java 8 est une véritable révolution dont l’enjeu dépasse de loin la simple évolution d’un langage et de ses APIs. Rdv sur notre chaîne Youtube pour revoir la conférence :

Après une version 7 peu convaincante, la version 8 replace Java au premier rang des langages objets actuels.
En parfaite adéquation avec les besoins des projets et les possibilités offertes par les environnements matériels actuels, cette nouvelle version apporte une modernisation du langage et de ses API, un suivi des performances des processeurs et des améliorations de la JVM.

Quels sont les nouveaux concepts introduits par Java 8 ? En quoi les expressions lambdas et l’API Stream représentent une avancée majeure de la plateforme ? Quelle stratégie adopter pour migrer vers Java 8 en toute sécurité et en diminuant au maximum sa dette technique ?

La sortie de Java 8 est une véritable révolution dont l’enjeu dépasse de loin la simple évolution d’un langage et de ses APIs. Rdv sur notre chaîne Youtube pour revoir la conférence :

Après une version 7 peu convaincante, la version 8 replace Java au premier rang des langages objets actuels.
En parfaite adéquation avec les besoins des projets et les possibilités offertes par les environnements matériels actuels, cette nouvelle version apporte une modernisation du langage et de ses API, un suivi des performances des processeurs et des améliorations de la JVM.

Quels sont les nouveaux concepts introduits par Java 8 ? En quoi les expressions lambdas et l’API Stream représentent une avancée majeure de la plateforme ? Quelle stratégie adopter pour migrer vers Java 8 en toute sécurité et en diminuant au maximum sa dette technique ?

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Publicité

Similaire à JAVA 8 : Migration et enjeux stratégiques en entreprise (20)

Plus par SOAT (20)

Publicité

Plus récents (20)

JAVA 8 : Migration et enjeux stratégiques en entreprise

  1. 1. …
  2. 2. source : http://www.oracle.com/technetwork/java/eol-135779.html
  3. 3. source : http://blog.soat.fr/?p=29705
  4. 4. List<String> datas = Arrays.asList("one", "two", "three"); datas.forEach(new Consumer<String>() { @Override public void accept(String elt) { System.out.println(elt); } });
  5. 5. List<String> datas = Arrays.asList("one", "two", "three"); datas.forEach(new Consumer<String>() { @Override public void accept(String elt) { System.out.println(elt); } });
  6. 6. List<String> datas = Arrays.asList("one", "two", "three"); datas.forEach(new Consumer<String>() { @Override public void accept(String elt) { System.out.println(elt); } });
  7. 7. List<String> datas = Arrays.asList("one", "two", "three"); datas.forEach(elt -> System.out.println(elt));
  8. 8. Resource resource = null; try { resource = new Resource(); resource.doJob(); } catch (Exception ex) { ex.printStackTrace(); } finally { if (resource != null) { try { resource.close(); } catch (Exception e) { e.printStackTrace(); } } }
  9. 9. try(Resource resource = new Resource()) { resource.doJob(); } catch (Exception ex) { ex.printStackTrace(); }
  10. 10. try(Resource resource = new Resource()) { resource.doJob(); } catch (Exception ex) { ex.printStackTrace(); }
  11. 11. public static void doWithResource(Consumer<Resource> lambda) { Resource resource = null; try { resource = new Resource(); lambda.accept(resource); } finally { if(resource != null) { try { resource.close(); } catch (Exception e) { e.printStackTrace(); } } } }
  12. 12. public static void doWithResource(Consumer<Resource> lambda) { Resource resource = null; try { resource = new Resource(); lambda.accept(resource); } finally { if(resource != null) { try { resource.close(); } catch (Exception e) { e.printStackTrace(); } } } }
  13. 13. public static void doWithResource(Consumer<Resource> lambda) { Resource resource = null; try { resource = new Resource(); lambda.accept(resource); } finally { if(resource != null) { try { resource.close(); } catch (Exception e) { e.printStackTrace(); } } } }
  14. 14. doWithResource(resource -> resource.doJob());
  15. 15. Map<String, String> map = new HashMap<>(); String key = "KEY"; if(!map.containsKey(key)) { map.put(key, key.concat("_COMPUTED")); } String result = map.get(key);
  16. 16. Map<String, String> map = new HashMap<>(); String key = "KEY"; if(!map.containsKey(key)) { map.put(key, key.concat("_COMPUTED")); } String result = map.get(key);
  17. 17. Map<String, String> map = new HashMap<>(); String key = "KEY"; String result = map.computeIfAbsent(key, k -> key + "_COMPUTED");
  18. 18. Map<String, String> map = new HashMap<>(); String key = "KEY"; String result = map.computeIfAbsent(key, k -> key + "_COMPUTED");
  19. 19. List<String> red = colors.stream() .filter(c -> "RED".equals(c)) .collect(Collectors.toList());
  20. 20. Registry registry = new Registry(); List<User> users = new ArrayList<>(); for (Group group : registry.getGroups()) { for (User user : group.getUsers()) { if(user.getAge() >= 18) { users.add(user); } } }
  21. 21. Registry registry = new Registry(); List<User> users = new ArrayList<>(); for (Group group : registry.getGroups()) { for (User user : group.getUsers()) { if(user.getAge() >= 18) { users.add(user); } } }
  22. 22. Registry registry = new Registry(); List<User> users = new ArrayList<>(); for (Group group : registry.getGroups()) { for (User user : group.getUsers()) { if(user.getAge() >= 18) { users.add(user); } } }
  23. 23. Registry registry = new Registry(); List<User> users = new ArrayList<>(); for (Group group : registry.getGroups()) { for (User user : group.getUsers()) { if(user.getAge() >= 18) { users.add(user); } } }
  24. 24. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  25. 25. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  26. 26. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  27. 27. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  28. 28. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  29. 29. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  30. 30. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  31. 31. public List<User> filterUsers(Registry registry, Predicate<User> filter) { return registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(filter) .collect(Collectors.toList()); }
  32. 32. public List<User> filterUsers(Registry registry, Predicate<User> filter) { return registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(filter) .collect(Collectors.toList()); }
  33. 33. public List<User> filterUsers(Registry registry, Predicate<User> filter) { return registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(filter) .collect(Collectors.toList()); }
  34. 34. public List<User> filterUsers(Registry registry, Predicate<User> filter) { return registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(filter) .collect(Collectors.toList()); }
  35. 35. Registry registry = new Registry(); filterUsers(registry, u -> u.getAge() >= 18); filterUsers(registry, u -> u.getName().startsWith("John"));
  36. 36. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  37. 37. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> { return grp.getUsers() .stream() .filter(u -> { return u.getAge() >= 18; }); }) .collect(Collectors.toList());
  38. 38. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  39. 39. Registry registry = new Registry(); List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  40. 40. Registry registry = new Registry(); List<User> users = registry.getGroups() .parallel() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());
  41. 41. User remoteUser = null; // NullPointerException System.out.println("User name : " + remoteUser.getName());
  42. 42. Optional<User> user = Optional.ofNullable(remoteUser); user.ifPresent(u -> System.out.println("User name : " + u.getName()));
  43. 43. Optional<User> user = Optional.ofNullable(remoteUser); user.ifPresent(u -> System.out.println("User name : " + u.getName()));
  44. 44. Optional<User> user = Optional.ofNullable(remoteUser); user.ifPresent(u -> System.out.println("User name : " + u.getName()));
  45. 45. user.flatMap(u -> Optional.ofNullable(u.getName())) .ifPresent(name -> System.out.println("User name :" + name));
  46. 46. user.flatMap(u -> Optional.ofNullable(u.getName())) .ifPresent(name -> System.out.println("User name :" + name));
  47. 47. user.flatMap(u -> Optional.ofNullable(u.getName())) .ifPresent(name -> System.out.println("User name :" + name));
  48. 48. if(user != null) { if(user.getName() != null) { System.out.println("User name :" + user.getName()); } }
  49. 49. Optional<String> birthdate = remoteUser.getBirthdate();
  50. 50. LocalDate newDate = LocalDate.now().plusDays(3) .plusMonths(2); LocalDateTime newDateTime = LocalDateTime.now() .plusMinutes(3) .plusSeconds(6) .plusDays(2);
  51. 51. LocalDate newDate = LocalDate.now().plusDays(3) .plusMonths(2); LocalDateTime newDateTime = LocalDateTime.now() .plusMinutes(3) .plusSeconds(6) .plusDays(2);
  52. 52. LocalDate newDate = LocalDate.now().plusDays(3) .plusMonths(2); LocalDateTime newDateTime = LocalDateTime.now() .plusMinutes(3) .plusSeconds(6) .plusDays(2);
  53. 53. Source : http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html
  54. 54. new BigDecimal("0.00").stripTrailingZeros().equals(BigDecimal.ZERO))
  55. 55. new BigDecimal("0.00").stripTrailingZeros().equals(BigDecimal.ZERO))
  56. 56. new BigDecimal("0.00").stripTrailingZeros().equals(BigDecimal.ZERO))
  57. 57.

×