O suporte a tipos genéricos, bastante conhecido pela comunidade como Generics , foi uma das mudanças mais importantes do Java, realizada na versão 5 da linguagem. Com essa funcionalidade os programadores Java passaram a contar com a checagem do tipo dos objetos realizada pelo compilador em estruturas flexíveis. No framework Collections do Java, por exemplo, faz muito sentido usar tipos genéricos para determinar qual tipo de objetos serão armazenados por uma coleção. Delegando ao compilador a validação desse código, sem a necessidade do programador escrever código para validação ( instanceof ) e conversão ( casting ) dos tipos. Por outro lado, a utilização de tipos genéricos pode aumentar a complexidade e verbosidade do código! Nesse post vou demostrar as mudanças do Java 7, como a Inferência de Tipos ( type inference ) e o operador diamond , para deixar o código de tipos genéricos um pouco mais limpo. Criar Coleções O código a seguir demonstra como relacionar uma lis