2
respostas

Duvida no tipo de retorno do Método pagamentosAntesDe - ArrayList<Pagamento> ou Pagamentos?

Bom dia, Não sei se está correto ou causa algum efeito colateral que não percebi, mas no meu caso da refatoração da classe Pagamentos meu método pagamentosAntesDe ficou assim (e os outros também):

public Pagamentos pagamentosAntesDe(Calendar data) {
        Pagamentos pagamentosFiltrados = new Pagamentos();
        for (Pagamento pagamento : this.pagamentos) {
            if (pagamento.getData().before(data)) {
                pagamentosFiltrados.getPagamentos().add(pagamento);
            }
        }
        return pagamentosFiltrados;
    }

Reparem que o tipo de retorno do método é Pagamentos e não ArrayList< Pagamento > como foi proposto pelo Instrutor.

Creio que esteja correto, mas gostaria de uma outra opinião somente para confirmar mesmo.

2 respostas

Oi, João

Seu método está correto pois, se não me engano, a classe pagamentos herda uma ArrayList e dessa forma ela sabe lidar com os dados recebidos.

Ola João André!

Na refatoração voce nao utiliza mais a herança na classe pagamentos e sim a composição, ou seja, neste caso no retorno do método o correto eh retornar o ArrayList como foi proposto. Provavelmente na refatoração voce esqueceu de remover a herança/extends da classe pagamentos.