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.
[sourcecode lang=”java”]
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;
}
}
}
[/sourcecode]
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 “|”.
[sourcecode lang=”java”]
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);
}
}
}
[/sourcecode]
As exceções declaradas no catch não podem ser mãe e filha (subclasse).
Se por exemplo declarássemos:
[sourcecode lang=”java”]catch(IOException | FileNotFoundException | UnsupportedEncodingException exc)[/sourcecode]
Teríamos o seguinte erro na compilação:
[sourcecode]
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
[/sourcecode]
até mais,
Pingback: Operador diamante no Java7 » Roberto Furutani