Olá,
Comecei a olhar as novidades do Java 8 e pensei comigo mesmo: Demorou mas chegou!
Gostei muito das novidades que são destacadas pela Oracle e blogs ao redor do mundo (eu acho que tem mais algumas novidades menos destacadas que eu vou gostar 🙂 )
Posso dizer que:
As expressões Lambdas, que existem há muito tempo em outras linguagens realmente são muitos legais.
A nova API para trabalhar com datas facilitou muito o entendimento e consequentemente a manipulação de data e hora no Java.
Abaixo enumerei 6 linhas que gostei de ver que compila e roda (quase um sonho).
ArrayList<String> listaNomes = new ArrayList<>(); listaNomes.add("Katia"); listaNomes.add("Ana"); listaNomes.add("Fernanda"); listaNomes.add("Andreia"); //(1) Ordena pelo length da string listaNomes.sort((n1, n2) -> Integer.compare(n1.length(), n2.length())); //(2) Mostra a lista no console listaNomes.forEach(s -> System.out.println(s)); LocalDate dataInicial = LocalDate.of(2014, Month.MAY, 14); //(3) Soma 1 ano LocalDate dataFinal = dataInicial.plusYears(1); System.out.println(dataFinal); LocalTime horaAgora = LocalTime.now(); //(4) Somar minutos a hora System.out.println(horaAgora.plusMinutes(15)); //(5) Diferença em dias de duas datas long days = ChronoUnit.DAYS.between(dataInicial, dataFinal); System.out.println(days); //(6) Diferença entre horas em minutos System.out.println(Duration.between(LocalTime.parse("11:00:00"), LocalTime.parse("17:00:00")).toMinutes());
Para esse post é só, ainda falta olhar o modificador default em interfaces, a API Stream para coleções e outras novidades.
Referências: