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?
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!