JAVA 8 : Migration et enjeux stratégiques en entreprise

111

Transcript of JAVA 8 : Migration et enjeux stratégiques en entreprise

Page 1: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 2: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 3: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 4: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 5: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 6: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 7: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 8: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 9: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 10: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 11: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 12: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 13: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 14: JAVA 8 : Migration et enjeux stratégiques en entreprise

Page 15: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 16: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 17: JAVA 8 : Migration et enjeux stratégiques en entreprise

source : http://www.oracle.com/technetwork/java/eol-135779.html

Page 18: JAVA 8 : Migration et enjeux stratégiques en entreprise

source : http://blog.soat.fr/?p=29705

Page 19: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 20: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 21: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 22: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 23: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 24: JAVA 8 : Migration et enjeux stratégiques en entreprise

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

datas.forEach(new Consumer<String>() { @Override public void accept(String elt) { System.out.println(elt); }

});

Page 25: JAVA 8 : Migration et enjeux stratégiques en entreprise

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

datas.forEach(new Consumer<String>() { @Override public void accept(String elt) { System.out.println(elt); }

});

Page 26: JAVA 8 : Migration et enjeux stratégiques en entreprise

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

datas.forEach(new Consumer<String>() { @Override public void accept(String elt) { System.out.println(elt); }

});

Page 27: JAVA 8 : Migration et enjeux stratégiques en entreprise

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

datas.forEach(elt -> System.out.println(elt));

Page 28: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 29: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 30: JAVA 8 : Migration et enjeux stratégiques en entreprise

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(); } }}

Page 31: JAVA 8 : Migration et enjeux stratégiques en entreprise

try(Resource resource = new Resource()) { resource.doJob();} catch (Exception ex) { ex.printStackTrace();}

Page 32: JAVA 8 : Migration et enjeux stratégiques en entreprise

try(Resource resource = new Resource()) { resource.doJob();} catch (Exception ex) { ex.printStackTrace();}

Page 33: JAVA 8 : Migration et enjeux stratégiques en entreprise

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(); } } }}

Page 34: JAVA 8 : Migration et enjeux stratégiques en entreprise

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(); } } }}

Page 35: JAVA 8 : Migration et enjeux stratégiques en entreprise

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(); } } }}

Page 36: JAVA 8 : Migration et enjeux stratégiques en entreprise

doWithResource(resource -> resource.doJob());

Page 37: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 38: JAVA 8 : Migration et enjeux stratégiques en entreprise

Map<String, String> map = new HashMap<>();

String key = "KEY";if(!map.containsKey(key)) { map.put(key, key.concat("_COMPUTED"));}String result = map.get(key);

Page 39: JAVA 8 : Migration et enjeux stratégiques en entreprise

Map<String, String> map = new HashMap<>();

String key = "KEY";if(!map.containsKey(key)) { map.put(key, key.concat("_COMPUTED"));}String result = map.get(key);

Page 40: JAVA 8 : Migration et enjeux stratégiques en entreprise

Map<String, String> map = new HashMap<>();

String key = "KEY";String result = map.computeIfAbsent(key,

k -> key + "_COMPUTED");

Page 41: JAVA 8 : Migration et enjeux stratégiques en entreprise

Map<String, String> map = new HashMap<>();

String key = "KEY";String result = map.computeIfAbsent(key,

k -> key + "_COMPUTED");

Page 42: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 43: JAVA 8 : Migration et enjeux stratégiques en entreprise

List<String> red = colors.stream() .filter(c -> "RED".equals(c)) .collect(Collectors.toList());

Page 44: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 45: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 46: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 47: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 48: JAVA 8 : Migration et enjeux stratégiques en entreprise

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); } }}

Page 49: JAVA 8 : Migration et enjeux stratégiques en entreprise

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); } }}

Page 50: JAVA 8 : Migration et enjeux stratégiques en entreprise

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); } }}

Page 51: JAVA 8 : Migration et enjeux stratégiques en entreprise

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); } }}

Page 52: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 53: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 54: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 55: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 56: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 57: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 58: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 59: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 60: JAVA 8 : Migration et enjeux stratégiques en entreprise

public List<User> filterUsers(Registry registry, Predicate<User> filter) {

return registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(filter) .collect(Collectors.toList());}

Page 61: JAVA 8 : Migration et enjeux stratégiques en entreprise

public List<User> filterUsers(Registry registry, Predicate<User> filter) {

return registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(filter) .collect(Collectors.toList());}

Page 62: JAVA 8 : Migration et enjeux stratégiques en entreprise

public List<User> filterUsers(Registry registry, Predicate<User> filter) {

return registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(filter) .collect(Collectors.toList());}

Page 63: JAVA 8 : Migration et enjeux stratégiques en entreprise

public List<User> filterUsers(Registry registry, Predicate<User> filter) {

return registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(filter) .collect(Collectors.toList());}

Page 64: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

filterUsers(registry, u -> u.getAge() >= 18);

filterUsers(registry, u -> u.getName().startsWith("John"));

Page 65: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 66: JAVA 8 : Migration et enjeux stratégiques en entreprise

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());

Page 67: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 68: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 69: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .stream() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 70: JAVA 8 : Migration et enjeux stratégiques en entreprise

Registry registry = new Registry();

List<User> users = registry.getGroups() .parallel() .flatMap(grp -> grp.getUsers().stream()) .filter(u -> u.getAge() >= 18) .collect(Collectors.toList());

Page 71: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 72: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 73: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 74: JAVA 8 : Migration et enjeux stratégiques en entreprise

User remoteUser = null;

// NullPointerExceptionSystem.out.println("User name : " + remoteUser.getName());

Page 75: JAVA 8 : Migration et enjeux stratégiques en entreprise

Optional<User> user = Optional.ofNullable(remoteUser);

user.ifPresent(u -> System.out.println("User name : " + u.getName()));

Page 76: JAVA 8 : Migration et enjeux stratégiques en entreprise

Optional<User> user = Optional.ofNullable(remoteUser);

user.ifPresent(u -> System.out.println("User name : " + u.getName()));

Page 77: JAVA 8 : Migration et enjeux stratégiques en entreprise

Optional<User> user = Optional.ofNullable(remoteUser);

user.ifPresent(u -> System.out.println("User name : " + u.getName()));

Page 78: JAVA 8 : Migration et enjeux stratégiques en entreprise

user.flatMap(u -> Optional.ofNullable(u.getName())) .ifPresent(name -> System.out.println("User name :" + name));

Page 79: JAVA 8 : Migration et enjeux stratégiques en entreprise

user.flatMap(u -> Optional.ofNullable(u.getName())) .ifPresent(name -> System.out.println("User name :" + name));

Page 80: JAVA 8 : Migration et enjeux stratégiques en entreprise

user.flatMap(u -> Optional.ofNullable(u.getName())) .ifPresent(name -> System.out.println("User name :" + name));

Page 81: JAVA 8 : Migration et enjeux stratégiques en entreprise

if(user != null) { if(user.getName() != null) { System.out.println("User name :" + user.getName()); }}

Page 82: JAVA 8 : Migration et enjeux stratégiques en entreprise

Optional<String> birthdate = remoteUser.getBirthdate();

Page 83: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 84: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 85: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 86: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 87: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 88: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 89: JAVA 8 : Migration et enjeux stratégiques en entreprise

LocalDate newDate = LocalDate.now().plusDays(3) .plusMonths(2);

LocalDateTime newDateTime = LocalDateTime.now() .plusMinutes(3) .plusSeconds(6) .plusDays(2);

Page 90: JAVA 8 : Migration et enjeux stratégiques en entreprise

LocalDate newDate = LocalDate.now().plusDays(3) .plusMonths(2);

LocalDateTime newDateTime = LocalDateTime.now() .plusMinutes(3) .plusSeconds(6) .plusDays(2);

Page 91: JAVA 8 : Migration et enjeux stratégiques en entreprise

LocalDate newDate = LocalDate.now().plusDays(3) .plusMonths(2);

LocalDateTime newDateTime = LocalDateTime.now() .plusMinutes(3) .plusSeconds(6) .plusDays(2);

Page 92: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 93: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 94: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 95: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 96: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 97: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 98: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 99: JAVA 8 : Migration et enjeux stratégiques en entreprise

Source : http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html

Page 100: JAVA 8 : Migration et enjeux stratégiques en entreprise

new BigDecimal("0.00").stripTrailingZeros().equals(BigDecimal.ZERO))

Page 101: JAVA 8 : Migration et enjeux stratégiques en entreprise

new BigDecimal("0.00").stripTrailingZeros().equals(BigDecimal.ZERO))

Page 102: JAVA 8 : Migration et enjeux stratégiques en entreprise

new BigDecimal("0.00").stripTrailingZeros().equals(BigDecimal.ZERO))

Page 103: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 104: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 105: JAVA 8 : Migration et enjeux stratégiques en entreprise

Page 106: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 107: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 108: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 109: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 110: JAVA 8 : Migration et enjeux stratégiques en entreprise
Page 111: JAVA 8 : Migration et enjeux stratégiques en entreprise