Open Aristides-Matoca opened 11 months ago
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
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.
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
Muito obrigado!