JAVA 8 : Migration et enjeux stratégiques en entreprise

Post on 16-Apr-2017

428 views 1 download

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

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

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

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

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

});

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

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

});

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

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

});

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

k -> key + "_COMPUTED");

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

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

k -> key + "_COMPUTED");

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

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

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

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

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

Registry registry = new Registry();

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

Registry registry = new Registry();

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

Registry registry = new Registry();

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

Registry registry = new Registry();

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

Registry registry = new Registry();

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

Registry registry = new Registry();

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

Registry registry = new Registry();

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

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

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

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

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

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

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

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

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

Registry registry = new Registry();

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

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

Registry registry = new Registry();

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

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

Registry registry = new Registry();

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

Registry registry = new Registry();

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

Registry registry = new Registry();

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

User remoteUser = null;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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