📎 Webclip
O mínimo que você deve saber de Java 8
Java 8 é apresentado como uma versão centrada em três pontos: default methods em interfaces, expressões lambda e a API de Streams. O texto mostra como essas mudanças deixam mais curto o uso de coleções e permitem evoluir interfaces sem quebrar implementações já existentes.
Fichamento#
List.sortpode ser chamada diretamente porque interfaces passaram a poder definir métodos concretos comdefault.- Default methods permitem adicionar comportamento sem quebrar compatibilidade; o texto cita
Collection.removeIf,Map.getOrDefaulteComparator.reversed. - Lambdas substituem classes anônimas quando o alvo é uma interface funcional, com apenas um método abstrato.
- Um lambda pode ser escrito com ou sem chaves e
returnquando tem só uma expressão. - O mesmo lambda pode ser passado diretamente para
Thread, porque o construtor espera uma interface funcional. forEachrecebe umConsumer, e o texto mostra que um lambda com um argumento pode dispensar parênteses.Comparator.comparingrecebe uma função, eString::lengthaparece como referência de método equivalente as -> s.length().filter,mapereduceentram como operações de Stream, e não como métodos de Collection.Collection.stream()cria um Stream a partir de uma coleção.filteré usado para manter apenas strings com menos de seis caracteres, eforEach(System.out::println)imprime o resultado.mapé mostrado transformando strings em seus tamanhos.IntStream,LongStreameDoubleStreamaparecem para evitar boxing em tipos primitivos.Comparator.comparingInté mostrado como outra forma de evitar boxing ao ordenar pelo tamanho da string.average()retorna umOptionalDouble, eorElse(0)é usado para exibir um valor padrão.collect(Collectors.toList())converte o Stream filtrado de volta paraList.- O texto também menciona recursos deixados de fora do artigo, como anotações repetidas,
java.time, melhora na inferência de generics e ajustes no operador diamante.
