Alguém sabe qual a diferença de usar o ou o ?
No livro que leio diz o seguinte:
Não entendi bulhufas… Não pode ser qualquer letra não?
Alguém sabe qual a diferença de usar o ou o ?
No livro que leio diz o seguinte:
Não entendi bulhufas… Não pode ser qualquer letra não?
Pode-se usar qualquer identificador Java valido. O mais usual é usar apenas uma letra que, por exemplo, pode ser “T”.
Ex
public interface Mapa<Chave,Valor>{
public void put(Chave c, Valor v);
public Valor get(Chave c);
}
É uma convenção, se voce estiver escrevendo uma coleção como a classe ArrayList, é costume usar , por que o tipo generico seria do tipo do Elemento.
Mas pode ser qualquer letra sim.
Ok… então o “E” é convenção para “Elemento”…
Mas e o “T”???
Sim, você pode usar qualquer identificador Java para identificar um parâmetro de tipo em uma classe ou método genérico. Ou seja, você pode usar qualquer identificador válido que o código compila. Isso não significa que você deva usar. Por exemplo, um nome perfeitamente válido de variável em Java seria :
int __$$$$x9 = 0; //péssimo nome de variável
Mas com certeza não é um bom nome, pois não diz nada sobre o que é essa variável. É o mesmo caso de parâmetros de tipo. No caso,
você pode usar qualquer coisa, mas foram definidas algumas convenções para obter padronização. As mais usadas são:
<K, V> - quando os parâmetros indicam um par Key/Value, usado em Maps
- para indicar elementos de uma coleção, vem de Element
- quaisquer outros casos, vem de Type.
Agora ficou claríssimo!
Vlw, man! 
Ok… então o “E” é convenção para “Elemento”…
Mas e o “T”???
(edit: sim, demorei pra responder e dupliquei a resposta, foi mal! )
Sim, pois T será substituído por um tipo de dado.
interface List<T>
{
//código aqui
}
Lista de um tipo T qualquer.
Essa nomenclatura vem dos templates do C++. Lá é comum chamar os tipos de dados de tipos, inclusive classes. Existe até um comando para renomear tipos chamado typedef.