Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Como ficaria uma classe record com um List como parâmetro?

Por exemplo. Digamos que a classe Médico tem um lista de consultas. A classe record que representa o retorno dessa entidade ficaria como?

public record DadosMedicoEConsultas(Long id, String nome, String email, String crm, String telefone, Especialidade especialidade, Endereco endereco, List consultas){

public DadosMedicoEConsultas(Medico){
    this(medico.getId(), medico.getNome(), medico.getEmail(), medico.getCrm(), medico.getTelefone(), medico.getEspecialidade(), medico.getEndereco(), **medico.getListaConsultas()**);
}

}
2 respostas
solução!

Olá, Dalvino! Tudo certo?

Para representar uma classe record com um List como parâmetro, você pode fazer mais ou menos como fez no código da pergunta, mas lembrando que precisamos de passar a Consulta como um tipo de elemento da lista:

public record DadosMedicoEConsultas(Long id, String nome, String email, String crm, String telefone, Especialidade especialidade, Endereco endereco, List<Consulta> consultas) {

    public DadosMedicoEConsultas(Medico medico) {
        this(medico.getId(), medico.getNome(), medico.getEmail(), medico.getCrm(), medico.getTelefone(), medico.getEspecialidade(), medico.getEndereco(), medico.getConsultas());
    }
}

Funcionará normalmente, basta que você tenha criado uma lista e ela tenha sido devidamante instanciada ao construir o médico. Caso contrário, teremos apenas uma variável na memória, e não um objeto do tipo List criado.

Espero ter ajudado!

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Show, Iasmin Araújo.

Eu estava complicando a situação, passando a lista para outro record e tentando passar esse record para o record DadosMedicoEConsultas. Obrigado pela solução.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software