Olá, Instalei o Java 7 para testar alguns novos recursos. Link para download Vamos aos dois mais básicos, porém muito úteis. 1. switch Agora no Java 7 é possível fazer switch de Strings. Como sempre, o comando é case-sensitive.
public class Java7 {
	public static void main(String [] args){
	  String cor = "azul";
	  switch(cor){
		  case "verde":
		  System.out.println("Cor verde");
		  break;
		  case "amarelo":
		  System.out.println("Cor amarelo");
		  break;
		  case "azul":
		  System.out.println("Cor azul");
		  break;
		  case "Azul":
		  System.out.println("Cor Azul");
		  break;
		  default:
		  System.out.println("Cor indefinida");
		  break;
	  }
	}
}
Nesse exemplo a saída seria: Cor azul 2. catch múltiplos Nessa versão é possível com uma única declaração de catch "pegar" várias exceções. Basta separar as exceções por pipe "|".
import java.io.*;
public class Java7 {
	public static void main(String [] args){
		try {
			 FileInputStream fis = new FileInputStream("arquivo.txt");
			 DataInputStream dis = new DataInputStream(fis);
			 BufferedReader br = new BufferedReader(new InputStreamReader(dis, "UTF-8"));
			 String linha;
			  while ((linha = br.readLine()) != null){
				System.out.println (linha);
			  }
		} catch(IOException | NullPointerException exc){
		  System.out.println("Deu erro " + exc);
		}
	}
}
As exceções declaradas no catch não podem ser mãe e filha (subclasse). Se por exemplo declarássemos:
catch(IOException | FileNotFoundException | UnsupportedEncodingException exc)
Teríamos o seguinte erro na compilação:
Java7.java:16: error: Alternatives in a multi-catch statement cannot be related
by subclassing
                } catch(IOException | FileNotFoundException | UnsupportedEncodin
gException exc){
                                      ^
  Alternative FileNotFoundException is a subclass of alternative IOException
Java7.java:16: error: Alternatives in a multi-catch statement cannot be related
by subclassing
                } catch(IOException | FileNotFoundException | UnsupportedEncodin
gException exc){
                                                              ^
  Alternative UnsupportedEncodingException is a subclass of alternative IOExcept
ion
2 errors
até mais,
Share


Um comentário

  1. #
    Operador diamante no Java7 » Roberto Furutani
    agosto 13th, 2012 at 21:00

    […] já faz quase um ano que escrevi dois posts sobre java 7, um sobre arquivos e outro sobre switch e catch multiplos. Hoje o post é sobre o diamante <>, o […]

    Responda a esse comentário

Deixe um comentário