();
data.add ( novo duplo ( 4.0) ;
duplo valor = data.get (0); .
a declaração do ArrayList se torna um pouco mais pesado , mas os programadores podem reconhecer os benefícios o compilador agora lida com o casting de dados e o erro elenco potencialmente causadores de acidente na terceira linha do código 1.4 é pego em tempo de compilação .
Autoboxing
Uma das perturbações insignificantes foi removido trabalhando com as coleções de objetos também. na maioria das vezes , os dados numéricos brutos serão armazenados em primitivos, não- objeto , como tipos de dados int e double . no entanto, apenas os objetos, equivalentes baseadas em classe podem ser armazenados em uma coleção. In 1.4 , o programador tinha que criar manualmente um novo objeto de cada vez que ele ou ela queria para armazenar um número em uma coleção , e lançá-lo de volta a um tipo de dados primitivo , quando foi puxado para fora. Autoboxing permite Java para lidar com isso automaticamente, de modo que o código :
data.add ( novo duplo ( 4.0) );
agora pode ser substituído por :
data.add (4,0 );
Java vai lidar com a conversão de "double" para "Double" automaticamente.
loop for aprimorado
ao armazenar dados em uma matriz ou qualquer um dos dados coleção estruturas , o programador pode encurtar o tradicional circuito do familiar :
for (int x = 0; x < data.size (); x + +) {
//faz algo com cada dupla em " dados "
}
Para o mais compacto e de fácil leitura :
para ( d duplo : dados ) {
//do algo com cada dupla em " dados "
}
tipos enumerados
Java 1.5 adicionado tipo " enum" com a língua . Tradicionalmente, se um programador queria manter o controle de todos os valores possíveis de uma opção, ele ou ela tinha que mapear palavras para números inteiros usando o "int static final" tipo de dados , assim: public class
Semáforo {
int color = 0;
static final int RED = 0;
static final int AMARELO = 1;
static final int VERDE = 2;
.
}
Este foi tedioso e propenso bug Por exemplo , o que acontece se a cor se torna Enum torna a solução muito mais elegante "4 ? " :
Semáforo Color = Stoplight.RED ;
public enum Semáforo {
vermelho, amarelo, verde &
};
ao contrário da velha maneira " static final " , o compilador agora sabe o que opções válidas são para " Semáforo " e pode aplicá-las para nós. como um bônus adicional , se o valor de "Cor" é impresso para o console, ele será impresso como a palavra Inglês, e não como um número.