O que está acontecendo?

5 respostas
programaçãojava
Matrix2100

public class Banco extends Contas {

/**
 * @return the contas
 */
public ArrayList<Banco> getListaContas() {
    return listaContas;
}

/**
 * @param listaContas the contas to set
 */
public void setListaContas(ArrayList<Banco> listaContas) {
    this.listaContas = listaContas;
}

ArrayList<Banco> listaAgencias = new ArrayList<>();
Banco[] agencias = new Banco[2];
ArrayList<Banco> listaContas = new ArrayList<>();
Banco[] contas = new Banco [3];
public Banco(String nomeAgencia, String nomeConta, int saldo, int limite) {
    super(nomeAgencia, nomeConta, saldo, limite);
    this.nomeAgencia = nomeAgencia;
}

public void criarAgencia() {
    agencias = null;
    System.out.println("Nome agencia");
    sc.nextLine();
    agencias[0].setNomeAgencia(sc.nextLine());
    agencias[1].setListaContas(null);
    listaAgencias.add(agencias);//AQUI
}
public void criarConta() {
    contas = null;
    System.out.println("Nome agencia");
    sc.nextLine();
    contas[0].setNomeConta(nomeConta);
    contas[1].setNomeAgencia(nomeAgencia);
    contas[2].setLimite(limite);
}

Diz que Sem%20t%C3%ADtulo

Como contornar isso?

5 Respostas

wldomiciano

O problema é que listaAgencias é um ArrayList<Banco>, mas vc tá tentando colocar um Banco[] dentro dela.

Pra fazer sentido, vc teria que mudar listaAgencias para ArrayList<Banco[]>.

Ou, na linha que dá o erro, fazer algo como:

listaAgencias.add(agencias[0]);
Matrix2100

Tão simples, tão simples ass:me
Multiple-facepalm-o

Matrix2100

Aliás, no meu programa eu irei colocar essas arrays uma dentro da outra, você teria alguma dica de como acessar, por exemplo, listaAgencias[0] -> agencia[1] -> listaContas[1213] -> conta.add (conta também é um “vetor” como você viu)?

wldomiciano

Talvez algo assim:

class Banco {
    ArrayList<Conta> listaContas;

    public void addConta(Conta c) {
        listaContas.add(c);
    }

    public Conta getConta(int id) {
        listaContas.get(id);
    }
}

class Conta {
    int id; String nome; String cpf;
    /* ... */
}

class Programa {
    static private ArrayList<Banco> listaAgencias;

    public static void main(String[] args) {
        Conta c1 = new Conta();
        Conta c2 = new Conta();
        Conta c3 = new Conta();
        Conta c4 = new Conta();

        Banco b1 = new Banco();
        b1.addConta(c1);
        b1.addConta(c2);

        Banco b2 = new Banco();
        b2.addConta(c3);
        b2.addConta(c4);

        listaAgencias.add(b1);
        listaAgencias.add(b2);

        /* ... */

        listaAgencias.get(0).getConta(0).nome;
    }
}

Vi, mas será que faz sentido? A variável contas é um array de bancos?

No código que mostrei acima, pensei em uma lista de bancos, cada banco contem várias contas, mas contas não deveria conter vários bancos.

Matrix2100

Botei bancos, na verdade é agencia (onde você cria o cartao), então cada conta seleciona uma agencia(onde ele vai criar a conta). Nesse caso eu queria fazer um vetor de agencias, e a agencia tem nome e vetor de contas.

Criado 10 de setembro de 2018
Ultima resposta 10 de set. de 2018
Respostas 5
Participantes 2