ArrayList l = new ArrayList(); -> Cria array somente de OBJETOS (DEFAULT)
ArrayList l -> O uso das generics, servem para expecificar o tipo da array, no exemplo… de string… logo funcionaria com etc.
Esta certo isso ? Serve para qlqer tipo de coleção ?
Abraços,
Abdon
#3
Não esta correto não, este codigo não compila:
private List<int> a = new List<int>();
Vc não pode utilizar generic para tipos primitivos, o que vc pode fazer é utlizar seu wapper
private List<Integer> a = new List<Integer>();
Funciona com String prq o mesmo é um objeto não um tipo primitivo.
So corrigindo…
List l = new List();
Tambem nao compila porque List e interface.
o certo seria:
List l = new ArrayList();
Voce pode usar um super tipo apenas na declaraca do tipo base e nao para o tipo Generico.
Por exemplo, isso nao compila:
List l = new ArrayList();
mesmo String sendo subtipo de Object
Já que uma resposta está corrigindo/complementando a outra, vamos lá:
Na verdade você pode fazer isso, usando coringa.
Exemplo:
List<? extends Object> l = new ArrayList<String>();
Além disso, você tb pode colocar até mesmo supertipo da declaração usando coringa.
Exemplo:
List<? super String> l = new ArrayList<Object>();
[]'s