Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Generics ou Object

Na assinatura de compare da da interface Comparator a gente tem:

int compare(T o1, T o2);

Queria saber qual a diferença entre utilizar o T e utilizar Object como tipos nesse caso. Teríamos que fazer um casting explícito ao utilizar o método caso fosse Object? Queria entender melhor a assinatura do método.

1 resposta
solução!

Olá Vinicius, tudo bem?

"Teríamos que fazer um casting explícito ao utilizar o método caso fosse Object?"

Isso mesmo. Se formos analisar o T ou o Object separadamente, não haveria grandes diferenças já que o T representa um tipo genérico que vai dar espaço para algum outro objeto quando o método for chamado. A diferença aparece quando usamos uma classe genérica, como uma List<Foo>, por exemplo. Agora o compilador sabe que essa lista deve armazenar apenas objetos do tipo Foo, portanto não precisamos mais fazer o casting também.

Com Generics, somos capazes de fazer muito mais. Se tiver interesse em saber mais, recomendo ler esse post (está em inglês).

Se algum ponto ainda não está claro é só avisar!

Abraços e bons estudos!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software