Em uma postagem no OpenJDK JEP 186 Oracle’s Brian Goetz informs that Oracle will not be pursuing collection literals as a language feature in JDK8.
A coleção literal é uma forma de expressão sintática que é avaliada como um tipo de agregado como uma matriz, Lista ou Mapa. Projeto Coin literais de recolha propostos, que também complementa as adições de biblioteca em Java SE8. A suposição era que literais de recolha aumentaria a produtividade, legibilidade do código, e segurança de código.
Como uma alternativa a Oracle sugere um baseada em bibliotecas proposta com base no conceito de métodos estáticos em interfaces. A implementação seria idealmente através de novas classes imutáveis dedicados.
A seguir estão os principais pontos atrás esta abordagem baseada em biblioteca.
- A solução básica deste recurso funciona somente para Conjuntos, Listas e mapas por isso não é muito satisfatório ou popular. A solução avançada para cobrir um conjunto extensível de outros tipos de coleção está em aberto, bagunçado, e praticamente garantido para maneira superação seu orçamento de design.
- As alterações à base de biblioteca iria remover a maior parte da exigência para o “literais de recolha” alterar discutido no Project Coin.
- A abordagem baseada em biblioteca dá X% do benefício para 1% do custo, em que X >> 1.
- Os tipos de valores estão chegando eo comportamento desse novo recurso (literais de recolha) com os tipos de valor não é conhecido. É melhor não tentar coleção literal antes dos tipos de valor.
- É melhor fora de foco largura de banda linguagem de design da Oracle para resolver as questões fundamentais subjacentes a uma versão baseada em biblioteca. Isto inclui varargs mais eficientes, constantes de matriz na piscina constante, matrizes imutáveis, e suporte para armazenamento em cache (e recuperando sob pressão) imutáveis resultados intermédios.
De acordo com a Oracle Brian Goetz de, a dor real está em mapas não Listas, Define ou Arrays. As soluções baseadas na biblioteca são mais aceitáveis para Listas, Conjuntos e Arrays. Mas esta abordagem ainda carece de uma forma razoável para descrever literais par como Mapas. Os métodos estáticos em uma interface tornar a solução à base de biblioteca mais prático. Os tipos de valor fazem soluções baseadas na biblioteca para Map muito mais prático também. The prova de conceito remendo para a solução baseada biblioteca também está disponível.