Existe um “negocio” chamado generic , o generic permite você passar o tipo de Objeto que vc quer…
entao vamos la:
///um metodo faz alguma coisa
//você deve saber que um metodos pode receber parametros no exemplo aqui uma String
public void faz (String nome)
{
}
//Voce pode fazer isso com Generic ai além de passar o parametro você passo o tipo do parametro
public<T> void faz (T objetoDoTipoT)
{
}
Então é isso que esta acontecendo você esta criando um objeto especificando o tipo que você vai adicionar nele