A classe BeanUtils faz parte da biblioteca Apache Commons BeanUtils, que fornece utilitários para manipulação de propriedades e operações de reflexão em objetos Java. Ela simplifica o trabalho de copiar valores entre objetos, obter e definir propriedades, entre outras tarefas comuns de manipulação de objetos.

Aqui está um exemplo de como usar a classe BeanUtils para copiar propriedades entre objetos:

👨🏼‍💻 Exemplo prático

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils;

public class Main {
    public static void main(String[] args) {
        PessoaDto origem = new PessoaDto();
        source.setNome("John");
        source.setIdade(25);
        
        PessoaModel destino = new PessoaModel();
        
        try {
            BeanUtils.copyProperties(destino, origem);
            
            System.out.println("Nome: " + destino.getNome());
            System.out.println("Idade: " + destino.getIdade());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class PessoaDto {
    private String name;
    private int age;
    
    // getters and setters
}

@Entity
@Table(name="pessoas")
class PessoaModel {
    private String nome;
    private int idade;
    
    // getters and setters
}

Neste exemplo, temos duas classes: SourceObject e DestinationObject. Queremos copiar as propriedades do objeto source para o objeto destination.

Usamos BeanUtils.copyProperties(destination, source) para copiar as propriedades do objeto source para o objeto destination. Os nomes e tipos de propriedades correspondentes em ambos os objetos devem ser compatíveis para que a cópia seja feita corretamente.

Após a cópia, podemos acessar as propriedades do objeto destination e verificar se os valores foram copiados corretamente.

A biblioteca Apache Commons BeanUtils também fornece outros utilitários para obter e definir propriedades, converter tipos de dados, trabalhar com mapas de propriedades e muito mais. Consulte a documentação da biblioteca para explorar todos os recursos disponíveis.