Ir ao conteúdo
  • Cadastre-se

Como usar o typecast em um hashmap


Posts recomendados

(classe 1)

public abstract class ContaBancaria{
   float saldo;
   int numero
}

(classe 2)

public class ContaCorrente extends ContaBancaria{
}

(classe 3)

public class ContaPoupança extends ContaBancaria{
}

(classe 4)

public class Cliente{
    ContaBancaria conta;
}

(classe 5)

public class app{
   public static void main(string[] args){
      HashMap<Integer, Cliente> banco = new HashMap<Integer, Cliente>();
      cliente.get(i).getConta() // aqui e onde quero chegar, quero usar um typecast pra tratar a conta da classe cliente como ContaCorrente ou ContaPoupança
      //pra eu poder acessar os metodos das subclasses, ((ContaCorrente)getConta()) nao funciona, tem alguma maneira que eu possa usar nessa fase do codigo
     //de usar um typecast ou algum outro jeito de acessar as subclasses?
   }
}

 

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Sinceramente é um erro complicado ... eu prefiro fazer typecasts usando if para testar o tipo do objeto antes de converter

 

if (client.get(i).getConta() instanceof ContaCorrente) {
  ContaCorrente cc = (ContaCorrente) client.get(i).getConta();
}else if (client.get(i).getConta() instanceof ContaPoupanca){
  ContaPoupanca poupanca = (ContaPoupanca) client.get(i).getConta();
}

PS.: Sei que foi exemplo, mas evite usar caracteres especiais nos nomes das classes, dependendo da versão do compilador pode dar problema ...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...