Error: Exception in thread "main" java.lang.Nullpointerexception

Asked

Viewed 98 times

-3

inserir a descrição da imagem aqui

I have to do this exercise but at the time of error executing. Please help me.

Code 1:

public class Correntista {

    private String cpfCliente; // cpf do correntista
    private float saldo; // saldo da conta

    public Correntista(String cpfCliente, float saldo) {
        this.cpfCliente = cpfCliente;
        this.saldo = saldo;
    }

    public String getCPFCliente() {
        return cpfCliente;
    }

    public float getSaldo() {
        return saldo;
    }

    public void setSaldo(float saldo) {
        this.saldo = saldo;
    }
}

Code 2:

public interface MovimentoConta {

    public String getCPFCorrentista();
    public float getValorMovimento();

}

Code 3:

public class MovimentoContaImpl implements MovimentoConta {


    private float valorMovimento;
    private Correntista correntista;

    public MovimentoContaImpl(Correntista correntista, float valorMovimento) {
        this.valorMovimento = valorMovimento;
        this.correntista = correntista;
    }

    public String getCPFCorrentista() {
        return correntista.getCPFCliente();
    }

    @Override
    public float getValorMovimento() {
        return this.valorMovimento;
    }

}

Code 4:

public interface OperacoesBanco {

    public Correntista encontraCorrentista(Correntista todosCorrentistas[],String cpfProcurado);
}

Code 5:

public class OperacoesBancoImpl implements OperacoesBanco  {


    @Override
    public Correntista encontraCorrentista(Correntista[] todosCorrentistas, String cpfProcurado) {
        Correntista correntista = new Correntista(cpfProcurado, 100.0f);
        for(Correntista c : todosCorrentistas){
            if(c.getCPFCliente().equals(cpfProcurado)){
                correntista = c;
            }
        }
        return correntista;
    }
}

Code 6:

public class Teste {

    public void atualizarSaldo(Correntista[] c, MovimentoConta[] m, OperacoesBanco op) {
        for(MovimentoConta mc : m){
            Correntista correntista = op.encontraCorrentista(c, mc.getCPFCorrentista());
                correntista.setSaldo(correntista.getSaldo() + mc.getValorMovimento());
        }
    }

    public static void main(String args[]) {
        Correntista c1 = new Correntista("111111", 2000);
        Correntista c2 = new Correntista("222222", 1000);
        Correntista c3 = new Correntista("333333", 1500);
        Correntista c4 = new Correntista("444444", 1400);
        Correntista c5 = new Correntista("555555", 2500);
        Correntista[] cVetor = new Correntista[5];
        cVetor[0] = c1;
        cVetor[1] = c2;
        cVetor[3] = c3;
        cVetor[3] = c4;
        cVetor[4] = c5;

        MovimentoContaImpl m1 = new MovimentoContaImpl(c2, +200);
        MovimentoContaImpl m2 = new MovimentoContaImpl(c1, -100);
        MovimentoContaImpl m3 = new MovimentoContaImpl(c3, +500);
        MovimentoContaImpl m4 = new MovimentoContaImpl(c5, -200);
        MovimentoContaImpl m5 = new MovimentoContaImpl(c2, +80);
        MovimentoContaImpl m6 = new MovimentoContaImpl(c4, +300);
        MovimentoContaImpl m7 = new MovimentoContaImpl(c3, -150);
        MovimentoContaImpl[] mVetor = new MovimentoContaImpl[7];
        mVetor[0] = m1;
        mVetor[1] = m2;
        mVetor[2] = m3;
        mVetor[3] = m4;
        mVetor[4] = m5;
        mVetor[5] = m6;
        mVetor[6] = m7;

        System.out.println(cVetor[0].getCPFCliente() +"\n" +cVetor[0].getSaldo());
        OperacoesBancoImpl op = new OperacoesBancoImpl();
        Teste t = new Teste();
        t.atualizarSaldo(cVetor, mVetor,op);
        System.out.println(cVetor[0].getCPFCliente() +"\n" +cVetor[0].getSaldo());







    }
}
Erro:Exception in thread "main" java.lang.NullPointerException
    at Exer04.OperacoesBancoImpl.encontraCorrentista(OperacoesBancoImpl.java:11)
    at Exer04.Teste.atualizarSaldo(Teste.java:7)
    at Exer04.Teste.main(Teste.java:44)
Java Result: 1

1 answer

1


The third element of cVetor in main does not exist in your code. So you pass a null element to find Starburst, generating an NPE when you try to do the other operations:

cVetor[0] = c1;
cVetor[1] = c2;
cVetor[3] = c3; //Aqui está seu problema. Troque para cVetor[2]
cVetor[3] = c4;
cVetor[4] = c5;

Browser other questions tagged

You are not signed in. Login or sign up in order to post.