Classes são tipos de dados. Casts são usados para identificar objetos recuperados para arrays, listas e coleções. Casts também pode converter dados de um tipo para outro. Exceções Classe elenco ou erros ClassCastException são gerados pela Java Virtual Machine ( JVM ) ao tentar converter tipos de dados incompatíveis. Classes e lança
Java, lança identificar o tipo de objeto quando ele não pode de outra maneira ser reconhecido. Tipos de classe são conversíveis para interface tipos se a classe usa a interface. Casts converter um tipo de interface em um tipo de classe. Métodos em java executar funções ou cálculos. Os métodos podem extrair dados de diferentes tipos de classe . Quando o método Java tenta converter os dados de uma classe para outra usando moldes , os erros são lançadas.
Causas
Erros podem ocorrer quando as conversões de dados e cálculos de mudar o dados para tipos de dados incompatíveis. Se uma referência é convertida em um tipo de dados incompatível ou tipo de dados inválido , uma ClassCastException é gerado por Java. ClassCastException também ocorre quando uma referência de objeto é convertida em uma subclasse para que ele não é um exemplo . " SCJP Sun Certified Programmer for Java Platform ", diz " um monte de métodos na API do Java tipos de retorno de objetos que precisam ser convertido para seu tipo apropriado classe filha. " Alterar a classe de dados , quando processados pelo método também pode causar ClassCastException erros .
tipos incompatíveis
Datas e inteiros são tipos de dados incompatíveis. Personagens e tipos de dados numéricos são incompatíveis. Tipos booleanos são incompatíveis com números. Tipos de retorno covariantes não são compatíveis com tipos primitivos . Cordas e referências a objetos são tipos incompatíveis. Dados de ponto flutuante pode ser convertido em números inteiros , e os valores serão truncado como um resultado . Valores truncados podem ser incompatíveis em cálculos método posteriores. Inteiros e strings são tipos de dados incompatíveis.
Evitando erros
garantir que as variáveis manipuladas pelo mesmo método compartilham o mesmo tipo de dados. Lançai a classe em um tipo de destino , com um intervalo maior do que o tipo de fonte para evitar cortes. ClassCastException erros são evitáveis por meio true- cheques falsos . Adicionar "se " declarações para verificar se os tipos de dados são compatíveis para evitar erros ClassCastException e instruções de manipulação de exceção sobre o que fazer se um tipo de dados é incompatível. Use a manipulação lógica de exceção dentro do método para exceções classe elenco para evitar mensagens de erro. Declarações InstanceOf evitar vazamento incorreta . De acordo com a " SCJP Sun Certified Programmer para a plataforma Java ", " usar o operador instanceof para evitar classcast - exceção quando você não tiver certeza do tipo de uma referência que deve lançar dados reais " " Estruturas de Dados : Abstração e Design Usando Java" . " a vantagem dos genéricos (listas de matriz ) é que o compilador pode garantir que todas as operações com objetos referenciados por um ArrayList genérica são "seguros" e não irá causar exceções durante a execução. "