1
resposta

]metodo que recebe um List<Object> mas não consigo passar nenhum argumento

Queria entender o motivo de não funcionar e como deixar funcional

private void metodoGenericoTeste(List<Object> lista) {
        lista.forEach(c -> System.out.println(c));
}
1 resposta

O problema com o método metodoGenericoTeste é que ele recebe uma lista de objetos (List

Como resultado, se você tentar chamar o método metodoGenericoTeste passando uma lista de objetos que não sejam String, ocorrerá um erro em tempo de execução, pois o método println() não sabe como imprimir esses objetos.

Para corrigir isso, você pode alterar o tipo de argumento do método para List<?>, que significa que ele pode aceitar uma lista de qualquer tipo de objeto. E, em vez de chamar o método println(), você pode chamar o método toString() em cada elemento da lista para obter uma representação em string do objeto.

Então, o método ficaria assim:

private void metodoGenericoTeste(List<?> lista) {
    lista.forEach(c -> System.out.println(c.toString()));
}

Com essa alteração, você pode chamar o método metodoGenericoTeste passando uma lista de qualquer tipo de objeto e ele imprimirá uma representação em string de cada elemento da lista.