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: