Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

diferença

Olá, sempre que vi ArrayList sempre vi desse jeito:

ArrayList<String> arrayDeStrings = new ArrayList<>();

Porém o Nico usa sempre assim:

ArrayList<String> arrayDeStrings = new ArrayList<String>();

isso tem alguma diferença?

4 respostas

O sinal <> é chamado de diamond operator, que é utilizado quando definimos uma List com tipos genéricos de dados.

Pelo o que eu entendi, no inicio as List's em Java não suportavam tipos genéricos, e o diamond operator foi a forma de indicar que o conteúdo daquela lista era de um tipo genérico, e assim aceitar comportamentos diferentes.

Olá Vinícius, obrigado pela resposta! Porém vi que na pergunta eu não tinha colocado a minha dúvida realmente pois o fórum não aceita comentários com <>, coloquei em formato de código para que possa ser visto.

solução

Fala Luiz, beleza?

A ideia disso tudo é reduzir a verbosidade da linguagem. As duas abordagens funcionam, porém quando não especificamos o tipo no lado direito da declaração, esse tipo será inferido pelo construtor durante a compilação!

Sempre que quisermos fazer uso dessa inferência de tipo em classes genericas (generics), precisamos especificar o diamond operator na instanciação

Espero ter ajudado!

Abraços e bons estudos

Fico feliz em ter ajudado!

Estou fechando o tópico! Qualquer nova dúvida basta criar um novo!

Abraços!