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));
}
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));
}
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.