Visão Geral do Suporte a JDK 7 no NetBeans IDE
This tutorial needs a review. You can open a JIRA issue, or edit it in GitHub following these contribution guidelines. |
O NetBeans IDE suporta as novas funcionalidades de linguagem Java 7, como o operador diamante, strings em switch, multicatch etc. Quando você usa esses construtores em seu código, o IDE os reconhece, oferece classes corretas na funcionalidade autocompletar código, destaca erros corretamente e permite corrigir a sintaxe automaticamente. Portanto, o NetBeans IDE ajuda você a escrever código compatível com a Especificação de Linguagem Java, Java SE 7 Edition.
Neste tutorial, você aprende como o IDE trata as construções do idioma Java 7.

Para concluir este tutorial, você precisa do software e dos recursos apresentados na tabela a seguir.
Software ou Recurso | Versão Necessária |
---|---|
versão 7.4 ou 8.0 |
|
versão 7 ou 8 |
Garantindo que o JDK 7 esteja Registrado no NetBeans IDE
Verificando a Configuração do Projeto
Para verificar se seu projeto está configurado para usar o JDK registrado para compilação, execução e depuração:
-
Crie um projeto Java escolhendo Arquivo > Novo Projeto e selecionando Aplicação Java como o tipo de projeto.
-
Clique em Próximo.
-
Digite
SwitchTest
como nome do projeto e especifique sua localização. -
Clique em Finalizar.
-
Na janela Projetos, clique com o botão direito do mouse no nó do projeto
SwitchTest
e selecione Propriedades > Bibliotecas. Nesta guia, certifique-se de que JDK 1.7 esteja selecionado na lista de Plataformas Java.
-
Alterne para a guia Códigos-fonte da janela Propriedades do Projeto e certifique-se de que JDK 7 tenha sido escolhido como o formato do Código-fonte/Binário.
-
Clique em OK para fechar a caixa de diálogo Propriedades do Projeto. Seu projeto está configurado para reconhecer os recursos do idioma do Java 7.
Usando Novos Construtores de Linguagem do JDK 7: Instrução de Alternância
O JDK 7 traz uma série de novas funcionalidades e melhorias em diferentes áreas, incluindo internacionalização, E/S e rede, segurança etc. A melhor forma de ilustrar o suporte ao JDK 7 pelo Editor Java do IDE é demonstrando algumas das alterações de linguagem introduzidas pelo Projeto Coin.
Uma dessas alterações é um "String em uma alternância". Nas versões anteriores do Java, o argumento de switch
só podia ser um dos seguintes tipos de dados primitivos: byte
, short
, char
, int
ou enum
. A partir do JDK 7, é possível usar argumentos do tipo String
na expressão de uma instrução switch
.
-
Abra
SwitchTest.java
e adicione o código a seguir. Essa pequena amostra exibe códigos RGB para várias cores. Com o JDK 7, a variávelcolor
pode ser umaString
.
package switchtest;
public class SwitchTest {
public static void main(String[] args) {
String color = "red";
String colorRGB;
switch (color.toLowerCase()) {
case "black": colorRGB = "000000"; break;
case "red": colorRGB = "ff0000"; break;
case "green": colorRGB = "008000"; break;
case "blue": colorRGB = "0000ff"; break;
default: colorRGB = "Invalid color"; break;
}
System.out.println(colorRGB);
}
}
Se o código colado for incorretamente colado no editor, pressione Alt-Shift-F para reformatar.
-
Na janela Projetos, clique com o botão direito do mouse no nó do projeto e selecione Executar Arquivo. Você verá a saída da aplicação, que é o código RGB para a cor vermelha. Você pode ver que a construção foi bem-sucedida e que a aplicação funciona quando a plataforma de destino e o formato do código-fonte são JDK 7.

-
Vamos reverter para o uso do JDK 6 e testar como a aplicação é compilada com o compilador do JDK 6. Na janela Projetos, clique com o botão direito do mouse no nó do projeto e selecione Propriedades. Na categoria Códigos-fontes, defina o Formato Código-fonte/Binário para
JDK 6
e clique em OK. Você pode ver imediatamente que o parser do JDK6 não reconhece a sintaxe. A compilação falha por causa do tipo de variável incompatível.
-
Agora, vamos reescrever o código usando a instrução
if-then-else
, em vez deswitch
, como segue:
package switchtest;
public class SwitchTest {
public static void main(String[] args) {
String color = "red";
String colorRGB;
if (color.equals("black")) {
colorRGB = "000000";
} else if (color.equals("red")) {
colorRGB = "ff0000";
} else if (color.equals("green")) {
colorRGB = "008000";
} else if (color.equals("blue")) {
colorRGB = "0000ff";
} else {
colorRGB = "Invalid color";
}
System.out.println(colorRGB);
}
}
Com o JDK 7 no formato de Código-fonte/Binário, o IDE reconhece tais casos e oferece a opção de convertê-los para switch
, conforme mostrado na figura abaixo.
Clique na dica e o construtor if-then-else
será automaticamente convertido para exatamente o mesmo switch
que tínhamos antes.
Suporte a JDK 7: Mais Exemplos
Para demonstrar como o Editor Java do IDE reconhece e automaticamente corrige o código para que seja compatível com a especificação de linguagem do JDK 7, vamos usar um snippet de código simulado, que não tem finalidade, mas contém todas as grandes melhorias da linguagem.
Ao percorrer esse snippet de código simulado e aplicar as dicas do editor, você verá os exemplos a seguir de como:
-
Tirar vantagem da inferência automática de tipo, quando o compilador Java consegue inferir o tipo de uma instância genérica sem a necessidade de especificá-la explicitamente. O operador diamante é usado para sinalizar o caso de inferência de tipo.
-
Usar o tratamento aprimorado de exceção, ou multi-catch, quando um bloco
catch
pode ser usado para vários tipos de exceções. -
Usar a nova sintaxe das instruções de fechamento de funcionalidades, introduzida pela funcionalidade de gerenciamento automático de funcionalidades.
-
Substitua o código anterior da aplicação no mesmo arquivo
SwitchTest.java
pelo seguinte código:
-
package switchtest;
import java.io.FileInputStream;
import java.lang.reflect.Method;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class SwitchTest {
public void test() throws IOException {
List<String> list = new ArrayList<String>();
HashMap<String, Integer> map = new HashMap<String, Integer>();
HashMap<String, Integer> map2 = new HashMap<String, Integer>();
String a = "ehlo";
try {
Method m = Object.class.getMethod("toString");
m.invoke(this);
} catch(NoSuchMethodException e) {
e.printStackTrace();
} catch(InvocationTargetException e) {
e.printStackTrace();
} catch(IllegalAccessException e) {
e.printStackTrace();
}
FileInputStream in = null;
try {
in = new FileInputStream("foo.txt");
int k;
while ((k = in.read()) != -1) {
System.out.write(k);
}
} finally {
if (in != null) {
in.close();
}
}
}
}
-
Observe que o IDE exibe diversas dicas, como mostrado acima neste tutorial, de como é possível otimizar seu código para a especificação JDK 7. Basta clicar em cada dica e selecionar a ação sugerida.
-
Finalmente, depois de aceitar todas as sugestões, você deverá ter o código compatível com JDK 7 mostrado abaixo.
link:/about/contact_form.html?to=3&subject=Feedback: Overview of JDK 7 Support in NetBeans IDE[Enviar Feedback neste Tutorial]
Consulte Também
Para obter mais informações sobre o JDK 7 e o NetBeans IDE, consulte:
-
Definindo o JDK de Destino em Desenvolvendo Aplicações com o NetBeans IDE
-
Os Tutoriais do Java: E/S de Arquivos - uma seção nos tutoriais do Java que contém numerosos exemplos das mudanças do JDK 7 em E/S.
-
Os Tutoriais do Java: Fork e Join - explicação no novo framework de fork/join no JDK7.
Para obter mais informações sobre o desenvolvimento de aplicações Java no NetBeans IDE, veja:
-
Criando Projetos Java em Desenvolvendo Aplicações com o NetBeans IDE