Hola Daniel, Este es el constructor:
public DatosListadoMedico(Medico medico){
this(medico.getNombre(),medico.getEspecialidad().toString(),
medico.getDocumento(), medico.getEmail());
}
A mi me compila bien, si se te presenta algún error, proporciona la información.
Por si no te queda claro para que es el constructor aqui tiene una breve explicación.
@GetMapping: Esta anotación indica que este método manejará las solicitudes GET para el endpoint asociado. En este caso, no se especifica un path específico, por lo que el método se mapeará al path base del controlador.
List: El tipo de retorno del método es una lista de objetos DatosListadoMedico, que será devuelta como respuesta a la solicitud.
medicoRepository.findAll(): Este método utiliza el repositorio medicoRepository para recuperar todos los médicos de la base de datos. Suponiendo que tienes una implementación adecuada del repositorio, esto buscará y devolverá todos los registros de la tabla "medicos".
.stream(): El método findAll() devuelve un iterable de médicos, y al llamar a .stream() se convierte en un flujo de elementos.
.map(DatosListadoMedico::new): Utilizando la operación map, se crea un nuevo objeto DatosListadoMedico para cada médico en el flujo. Aquí se está aprovechando una referencia a constructor para crear los objetos DatosListadoMedico. Esto asume que DatosListadoMedico tiene un constructor que acepta un objeto Medico como parámetro.
.toList(): Finalmente, se utiliza el método toList() para convertir el flujo de objetos DatosListadoMedico en una lista.
Espero Haber ayudado!