Não consigo acessar o nome da conta na segunda hashmap

2 respostas
programação
Matrix2100

No meu main eu tenho

Map<Integer, Agencias> Agencias;
 Agencias = new HashMap<>();

[…Pilhas de código…]

E na classe Agencias há

public class Agencias<Integer, Object> {
String nomeAgencia;
private Map<Integer, Contas> contas = new HashMap<>();
public Agencias(String nomeAgencia, Map<Integer, Contas> contas) {
    this.nomeAgencia = nomeAgencia;
    this.contas = contas;
}

[…Pilhas de código…]

E criei um método para printar o nome das contas mas não consigo acessar eles, apenas a localização dos objetos na memória.

public void ver(Map<Integer, Agencias> Agencias) {
    Scanner sc = new Scanner(System.in);
    System.out.println("De qual agencia você deseja visualizar as contas?");
    int id = sc.nextInt();
    System.out.println("--------------------------");
    Agencias.get(id).getContas().keySet().forEach((key) -> {
        System.out.println(key + " --- Nome:" + Agencias.get(id).getContas().get(0));
    });
    System.out.println("--------------------------");
    new Main().menuContas(Agencias);
    }

Só consigo fazer até o get(x), não consigo acessar o nome da conta.
Minha saida é isso: 0 — Nome:[Dados.Contas@6d311334]
Alguém tem uma ideia de como contornar isso?

2 Respostas

M

Dá uma olhada aqui no ponto 13.4 sobre o metodo toString. Se nao entender algo fala

Matrix2100

Consegui resolver, na verdade foi falha minha :stuck_out_tongue: passei o parâmetro de forma errônea…
Eu estava passando

Map<Integer, Agencias> Agencias;

como parâmetro, mas na verdade era pra ser:

Map<Integer, Agencias<Integer, Contas>> Agencias;

mesmo assim valeu, estou pegando varios livros para ler sobre poo, se tiver algum livro mais atual que possa me passar… gostei muito das funções lambda

Criado 16 de setembro de 2018
Ultima resposta 18 de set. de 2018
Respostas 2
Participantes 2