Cast, List, Object

Galera,

coisa boba, mas não to conseguindo.
Um método retorna um List<Object>, um outro recebe como parâmetro um List<Work>…
como consigo colocar o que o primeiro retorna no set do segundo?

List<Object> workList = lista.getWork();
segundaClasse.setWorkList( workList );

isso não funciona… tentei colocar cast de todo jeito e nada…

solução?

valeu

Está é uma proteção do generics, já que você pode colocar qualquer Objeto em uma lista de Object ele não aceita esta lista como parâmetro para uma método que recebe uma lista de Work.

Acredito que você terá que fazer um loop para pegar os valores de uma lista e adicionar na outra. Você pode fazer o Cast nos objetos que são retornados por esta lista, mas não na lista inteira.

vou ter que fazer justamente o que eu não queria… hahaha

valeu man!

Nao eh bem assim nao…

Vc pode substituir

List<Object> workList = lista.getWork();  

por

List<?> workList = lista.getWork();  

:slight_smile:

Esse ultimo não funca não, List<?> != List<Work>

Mas ué, se lista.getWork(); retorna uma lista que tem apenas objetos “Work” dentro, ou seja, é uma List<Work>, porque você não muda a assinatura desse método para retornar um List<Work>??

De mais, o java esta certo em bloquear, pois se ele aceitasse isso, ai não varia sentido existir generics :stuck_out_tongue: