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

Exercicio 2.Muitos Descontos e o Chain of Responsibility - Fim da corrente no Chain of Responsibility

Caros, estou tentando criar uma classe de teste para testar o fim da corrente mas não estou conseguindo. também não sei se estou fazendo o correto

package RequisicoesWeb;

public class TestaRequisicao {

    public static void main(String[] args) {


        Requisicao requisicao = new Requisicao(Formato.CSV);
        Conta conta = new Conta(100000, "Maria");

        Resposta r1,r2 = null,r3 = null;


        r1 = new RespostaXML(r2);
        r2 = new RespostaCSV(r3);
        r3 = new RespostaPorcento();


        r1.responde(requisicao, conta); 

    }
}
4 respostas

Oi Mary, tudo bem? :)

Qual problema que você teve, pode dar mais detalhes?

Abraços!

são duas dúvidas: 1) a forma que estou fazendo está correta? 2) ao tentar executar é exibido a mensagem de erro ''' Exception in thread "main" java.lang.NullPointerException at RequisicoesWeb.RespostaXML.responde(RespostaXML.java:26) at RequisicoesWeb.TestaRequisicao.main(TestaRequisicao.java:19) '''

Bom dia. 1) Acredito que está correto sim. 2) Me parece que você não está configurando a "cadeia" antes de processar a requisição, por isso o NullPointer, Dentro de RespostaXML você deve estar chamando o responde do próximo objeto da cadeia sem antes atribuí-lo.

solução!

Só mudar a ordem Mary.

          var requisicao = new Requisicao(FormatoEnum.Csv);
            var conta = new Conta("Maria", 100000);

            IResposta r1, r2 = null, r3 = null;
            r3 = new RespostaEmPorcento();
            r2 = new RespostaEmCsv(r3); 
            r1 = new RespostaEmXml(r2);

            r1.Responde(requisicao, conta);

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