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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?
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.
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!