Olá,
Bom, 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 operador.
O uso desse operador economiza alguns toques no teclado, brincadeira, na verdade elimina uma redundância na parametrização de tipos.
Antes era assim:
[sourcecode lang=java]List
Map
Agora pode ficar assim:
[sourcecode lang=java]List
Map
Vamos economizar digitação, mas não economize em usar o <>, é sempre bom por o <> para evitar alguns erros.
Veja que no exemplo abaixo que se omitimos o diamante o compilador não reclama, mas tem um erro conceitual pois queremos uma variável do tipo Map<Integer, String>
[sourcecode lang=java]Map
map1.put(0, new PessoaFisica());
Map
Com o uso do diamante o compilador não aceita a declaração:
[sourcecode lang=java]Map
map1.put(0, new PessoaFisica());
Map
Os exemplos abaixo também são aceitos, mas para mim o melhor mesmo é parametrizar o tipo correto.
[sourcecode lang=java]List> list1 = new ArrayList<>();
List list2 = new ArrayList<>();
List> list3 = new ArrayList();[/sourcecode]
Se a List é declaração com ?, o compilador entende que é uma lista de Object.
É possivel usar extends e o super também.
[sourcecode lang=java]Map
Map
Nesse link tem um exemplo de teste do JDK
O Eclipse Juno já completa diretamente com <> com o uso de ctrl + espaço se tiver configurado para trabalhar com a sintaxe Java 7.
até mais,
Roberto
Exelente matéria! Gostei muito do site, vo espalhar sobre ele na facul.
Abrçs!