Ungenerics Types
Olá! Apenas vim deixar uma dica aqui para si e para quem está acompanhando o Bootcamp sobre coleções não genéricas.
Estou usando o Eclipse e notei que para criar um tipo não genérico é necessário adicionar o Object para poder identificar como um tipo não genérico, vou deixar um exemplo aqui usando uma Lista.
List<Object> listUngeneric = new ArrayList<>(); listUngeneric .add("collections"); listUngeneric .add(2023);
Muito obrigado!
Oi, @Aristides-Matoca. Tudo bem? Primeiramente agradeço muito sua contribuição.
Aqui no nosso curso, expliquei sobre a necessidade do Object quando precisamos percorrer uma coleção que não usa generics https://github.com/cami-la/collections-java-api-2023/tree/master/src/main/java/generics
Me diz se te ajuda.
Estou bem, obrigado e tu, @cami-la ?
Na verdade eu entendi tudo isso, porém quando eu tentei fazer exercícios me baseando nos exemplos dados por ti, houve um erro na declaração de uma collection o erro consistia em colocar Object na colletion sempre que a colletion for não genérica
Ou seja, declarando um ArrayList desse jeito: List lista = new ArrayList<>(); //Da erro por não ter declarado o Array como um Object List<Object> lista = new ArrayList<>(); //Funciona desse jeito.
Att: De salientar que este erro aconteceu comigo e simplesmente partilhei um alerta caso alguém de depare com a mesma situação.
Aproveitando para agradecer a ti, @cami-la, pela disponibilidade e pelo conhecimento passado. Tem sido um aprendizado enorme
Ah tá. Entendi!
Eu pensei que você não estava entendendo o uso de Collections sem usar o Generics.
E eu quem agradeço por estar fazendo o curso. Faz meu trabalho valer a pena. 💕
Tenta o seguinte: List<> lista = new ArrayList<>(); ou List lista = new ArrayList(); e vê se o erro ainda permanece.
Infelizmente estou sem o Eclipse aqui e não tenho como testar. :(
Não era para apresentar diferenças na forma da declaração mesmo estando usando IDEs diferentes.
Testei agora, ta funcionando. Obrigado
Boa tarde @cami-la , estou iniciando a parte de generics aqui do bootcamp da DIO, e usando o código que você forneceu, no intelliJ ele reclama sobre o uso do cast.
public static void main(String[] args) {
// Exemplo de Generics para vários tipos
List<Object> listaSemGenerics = new ArrayList();
listaSemGenerics.add("Elemento 1");
listaSemGenerics.add(10); // Permite adicionar qualquer tipo de objeto
listaSemGenerics.add(10.1885F);
listaSemGenerics.add('C');
listaSemGenerics.add(20.90);
// Exemplo de Generics do tipo String, neste caso só aceita elementos do tipo String.
List<String> listaGenerics = new ArrayList<>();
listaGenerics.add("Elemento 1");
listaGenerics.add("Elemento 2");
// listaGenerics.add(10); // Não permite adicionar qualquer tipo.
// Iterando sobre a lista de Generics do tipo String
System.out.println("Lista COM Generics do tipo String");
for (String elemento : listaGenerics) {
System.out.println(elemento);
}
System.out.println();
// Iterando sobre a lista de Generics de qualquer tipo (não é necessário o uso do CAST)
System.out.println("Lista COM Generics de qualquer tipo");
for (Object elemento : listaSemGenerics) {
System.out.println(elemento);
}
}
}
Esta foi a única forma que encontrei para utilizar a List sem ocorrer o erro.
No caso, pelo que entendi pesquisando, não tem como usar a sintaxe:
List listaSemGenerics = new ArrayList( );
agora precisa usar da seguinte forma:
List<Object> listaSemGenerics = new ArrayList();
Poderia me confirmar se é assim mesmo ou estou enganado.
Grato. Edilberto
Oi, @EdilbertoMorais. Boa tarde. (:
Então, acabei respondendo sua dúvida aqui https://github.com/cami-la/collections-java-api-2023/issues/35#issuecomment-1721684827
Mas essa forma você pode utilizar sim, viu? List listaSemGenerics = new ArrayList( ); Essa é a forma que faziamos antes de existir o Generics. Porém, tinhamos que tratar a possível exceção que é lançada quando fazemos o cast para garantir que na lista temos elementos do mesmo tipo.
Obrigado pela ajuda @cami-la .
Agora ficou claro como devo seguir no dia a dia de trabalho.
Obrigado pela ajuda @cami-la .
Agora ficou claro como devo seguir no dia a dia de trabalho.
Showww! Qualquer dúvida é só falar. (:
Bons estudos para nós.