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.