Bem, como muitos aqui devem saber, uma das limitações do uso de generics e não poder criar um array de um tipo genérico. Por exemplo, o código abaixo não compila:
class ArrayGenerico<T>{
T [] array = new T[10];
}
Porém, eu observei que a implementação de ArrayList do método T[] toArray(T []) da interface Collection é capaz de realizar esta proeza, caso o array passado no argumento não suporte o tamanho da coleção. Alguém sabe como isto é possível ? Seria através de reflections ? Ou super-poderes de API da linguagem ?