1
resposta

Instância de Interface

Na aula 3, existe a classe GeradorDeNotaFiscal que no construtor tem uma lista de Interface List. Pelo que entendi, ao instanciar a classe gerador de nota fiscal teria que passar a lista de ações necessárias que você queria que execute, correto ? mas como seria a chamada para esse método. Seria algo do tipo como o código abaixo? Porque na linha 3 estou com erro('List' is abstract; cannot be instantiated).

        AcaoAposGerarNota acaoEmail = new EnviadorDeEmail();
        AcaoAposGerarNota acaoGravarBanco = new NotaFiscalDao();
        List<AcaoAposGerarNota> acoes = new List<AcaoAposGerarNota>();
        acoes.add(acaoEmail);
        acoes.add(acaoGravarBanco);
        GeradorDeNotaFiscal geradorDeNotaFiscal = new GeradorDeNotaFiscal(acoes);
        geradorDeNotaFiscal.gera(fatura);
1 resposta

Oi Plínio

Como "List" é uma classe abstrata, você precisa instanciar uma de suas classes filhas, como ArrayList, por exemplo:

List<AcaoAposGerarNota> acoes = new ArrayList<AcaoAposGerarNota>();

Alterando essa linha deve resolver