Olá tudo bom pessoal,

Hoje vou demonstrar algumas funcionalidade implementadas no Java 7.

Até o Java 6 o switch suportava apenas os tipos char, byte, short, int, Character, Byte, Short, Integer, ou um enum, mas agora:

Switch com String

switch ("teste") {
    case "teste":
    System.out.println("Agora funciona");
    break;
}

Só tome cuidado com valores nulos, pois eles laçam o famoso e temido java.lang.NullPointerException.

Uso de underscore em literais para melhorar leitura

Usado melhorar a legibilidade do código, separando dígitos de um literal em grupos satisfazendo as necessidades do desenvolvedor. O sublinhado pode ser aplicado a tipos primitivos de dados ou literais inteiros e de ponto flutuante.

long numero = 1_000_000;

float outroNumero = 1000_00.0f;

O underscore só não pode estar no começo ou final do literal.

Long numero = _100;

float outroNumero = 100_f;

try-with-resource e uma melhora na forma de tratar as exceções

Semelhante ao using no C# é uma forma mais simples de fechar os recursos utilizados (automaticamente). Para poder utilizar o try-with-resource o bloco deve implementar a interface java.lang.AutoCloseable.

Esta abordagem permite um melhor estilo de programação, pois assegura a gestão dos recursos e evita o aninhamento de sucessivos blocos try-catch (multi-try).

try (BufferedReader inputReader = new BufferedReader(new FileReader("file://c:arquivo.txt"))) {
    String inputLine;
    while ((inputLine = inputReader.readLine()) != null) {
        System.out.println(inputLine);
    }
} catch (IOException ex) {
    ex.printStackTrace();
}

multi-try e a possibilidade de tratamento de várias exceções em uma única declaração catch

try {
    Method method = getClass().getDeclaredMethod("algumMetodo");
} catch (NoSuchMethodException | SecurityException e) {
}

Operador Diamond

Outro recurso implementado é operador diamond, que nada mais é que uma simplificação do uso de generics, só lembrando que o código compilado não muda.
O código é simples e dispensa mais comentários:


List nomes = new ArrayList<>();

Até a próxima.

Sobre Erick

Erick de Oliveira escreveu 19 artigos no blog.

Tagged with →  
Share →

2 Responses to Algumas novidades do Java 7

  1. Vinicius Kazuo says:

    Na parte do Operador Diamond, também é possivel fazer:
    List nomes = new ArrayList();assim ele fica como tipo genérico… é bom até isso!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>