BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Java 10 lançado

Java 10 lançado

Favoritos

A Oracle liberou uma nova versão do Java - o Java 10. Este chega apenas seis meses após o lançamento do Java 9. O próximo lançamento com suporte de longo prazo é o Java 11, a ser lançado em setembro.

O lançamento do Java 10 imediatamente deixa o Java 9 obsoleto e nenhum lançamento adicional de suporte do Java 9 será disponibilizado. A partir de 20 de março, as únicas versões do Java com suporte gratuito da Oracle são o Java 8 e o Java 10. O próximo lançamento com suporte de longo prazo disponível é o Java 11, que será lançado em setembro de 2018.

A versão final é virtualmente igual a RC1 e nenhuma mudança significativa foi adicionada desde que a InfoQ relatou o conteúdo da versão em novembro de 2017.

A documentação completa desta versão está disponível assim como as notas de lançamento para as mudanças da linguagem desta versão.

Para o desenvolvedor, uma das principais funcionalidades é a chegada do var. Essa é uma melhoria para a inferência de tipos no Java que pode ser mais significante do que inicialmente parece. Em um simples caso o uso de var nos permite código como:

var foo = new ArrayList();

A implementação do Java 10 tornou o var um nome de tipo reservado ao invés de uma palavra chave. Isso significa que código que usa var como variável, método ou nome de pacote não será afetado.

Assim como os casos simples, isso na verdade permite construções de programação que não eram possíveis antes. Por exemplo, o javac sempre permitiu uma forma muito limitada de inferência de tipos:

public class Test {
    public static void main(String[] args) {
        (new Object() {
            public void bar() {
                System.out.println("bar!");
            }
        }).bar();
    }
}

e este caso é conhecido na comunidade Java desde antes da chegada do Java 7.

O problema com este tipo de inferência é que não existe aplicação real do tipo "Object com um método bar" dentro do compilador, este tipo é impossível de expressar como um tipo de variável.

Com a chegada do Java 10, o tipo de variáveis não precisa ser explicitado, e, em vez disso, o var pode nos permitir preservar as informações do tipo estático evitando a declaração do tipo. Isso significa que agora podemos modificar nosso exemplo e escrever:

var o = new Object() {
    public void bar() {
        System.out.println("bar!");
    }
};

o.bar();

Este uso de var como um "tipo mágico" permite que os programadores preservem o tipo de informação para cada uso distinto da inferência de tipos, que de alguma forma nos faz lembrar da restrições de tipo dos Java Generics.

Usos mais avançados do uso de var com tipos não declaráveis são possíveis, e embora o recurso não seja capaz de satisfazer todas as críticas do sistema de tipos do Java, ele representa um passo definitivo (se cauteloso) adiante.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

  • Incorporou o que é feio no c#

    by Fabio Luis Rodrigues,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    A linguagem incorporou o que é feio no c# alegando ser mais útil e rápido para o desenvolvedor, mas isso é questão de gosto.
    Eu particularmente prefiro definir o tipo da variável. É questão de gosto.

  • Dúvida

    by Fabio Faria,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Prezados, boa tarde!

    Sobre as versões ficarem obsoletas rapidamente, a JVM continuará por exemplo a rodar nossas aplicações escritas em Java7, Java9 por exemplo?
    O que vai acabar são apenas as atualizações dessas versões?

    Grato!

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

BT